A C/C++ book, and buy MSVC6 or C++.NET (I think they call it MSVC 7.0?). You can get a deal on an academic edition. The book you choose is important, and no, I don't have any recommendations for C/C++ books.
After he has a book, and has gotten to where he has a working knowledge of the language (this will take a while), set up the source code for an existing mod for his favorite computer game.
Every popular game has a mod community--every shooter based on the Quake engine, every shooter based on the Unreal engine, and even small, unpopular games with limited followings have mods. Game mods only modify a portion of the source code, allowing him to modify things like gun fire rates, or jump velocity, or the addition of bullet ricochets, without drowning him in a sea of code. He can do simple things, and, as his ability allows, more and more complex modifications. He may never complete anything of note, but will definitely learn a great deal. And, as a bonus, he will probably learn good programming practices, something that can't be said about all languages.
I don't recommend Visual Basic as a starter language, because it encourages bad practices. The same for Perl, but because it does not have data types. They're both useful programming languages, but I don't recommend them as a learning tool for programming in general.