I keep changing my mind. Some cases I read and think Kogoro knows, and some I think there is no way he does...
On one hand, Kogoro knew Shinichi when he was little because Ran would get in trouble with him a bunch, so it wouldn't be unusual for Kogoro to recognize Shinichi. Kogoro might go to sleep for real suspecting that Shinichi is using him. Kogoro realizes that Shinichi got in some real trouble and needs to hide, so hits Shinichi on the head whenever he becomes too obvious -- or when he is annoying because Kogoro knows he can get away with it.
On the other hand, Kogoro isn't the least bit worried that whoever attacked Shinichi and turned him into a little kid might come after him or Ran. There was that one situation where Kogoro suggested Ran and Conan shower together, which he would never do if he knew Conan is Shinichi. Kogoro generally acts like he doesn't know about Conan, and he is pretty unaware in general. Kogoro is also usually a bad actor, so how could he keep it secret that he knows Conan's identity for long?
Maybe he gets suspicious like Ran and switches between thinking Conan is Shinichi and not?