This sounds exactly like my son. We were asked by his preschool teachers, his pediatrician and his OT to have his hearing checked. Everything was always fine and we had no history of ear infections. We even took him to a neurologist because there is a family history of epilepsy (absence seizures) which causes "spacing out" episodes that can last from 2 seconds to several minutes. Again, nothing was wrong.
It can be maddening! I never thought of myself as a yeller but sometimes after many attempts to get him to focus I would resort to yelling and he would eventually look over at me and say "did you say something?". If it wasn't so heartbreaking it would be funny.
A couple of things we did that helped. One is we got assurances from his psychologist that he has so much going on in his head he just doesn't listen very well, but she said he did not display ADHD. He is an extremely visual kid and while his language is very advanced he does not learn nearly as well when listening as opposed to seeing.
Second thing we did was The Listening Program. This was introduced to us and recommended to us by our DS's OT. It's a cd set that has specially recorded music and sounds that you listen to for 15 minutes a day. I think the web site is
www.advancedbrain.com. You have to get it through a licensed professional. I often questioned if it actually helped him but he clearly needed some help and I had to do something.
The last thing is time. As he gets older it will get better. DS is now almost six and while not yet a great listener he is getting better. One thing you can do to try to get his attention is have this little back and forth so he knows you are about to say something important:
You: One, two, three, eyes on me.
Him: One two, eyes on you.
Then you say what you need to say. I often will use this when we are out and I need to tell him something important like a safety issue or rules or whatever. Hope this helped.