Shinichi is smarter than Heiji. Why? If you can still remember the episode where Heiji first appeared, his deduction was wrong. I can feel that Heiji also knows that Kudo is better than him. Most of the time, he needs kudo to solve cases.
I think is Shinichi. Because in one of the episode, Heiji was solving a case but his deduction was wrong. And Heiji always could soving a case with Conan/Shinichi.