I'd start him out with Logo.
Don't underestimate kids. They need a lot less dumbing-down than one might think, and they have a love for work that most adults lack. I have a friend whose 6-year-old son is learning Haskell on his own, with his dad checking his work. No 3D graphics, no dragging and dropping, and no campy cartoon characters for distraction. Just GHCi, a text editor, and the child's mind.
Speaking for myself, I was writing my own programs in BASIC when I was 7 years old. I remember playing games on my uncle's computer and being quite fascinated with it. I wanted to know how it worked, what made it go. When we later got a home computer, it came with a BASIC manual and I taught myself to write simple programs. I liked programming a lot more than I liked playing games, but the games served as inspiration for what was possible.
If your son has a curiosity for how things work, a love for math and that sort of thing, he will want to learn programming and you won't have to prompt him very much.
PS: Java, C++ and the like are definitely not for kids. Object-Orientatedness might seem like it should be intuitive, but it's actually quite difficult to reason about due to the complexities introduced by mutable objects. It's too easy to introduce subtle bugs that will take all the fun out of learning. Go with a consistent and clean language with a simple set of rules, like Logo.