Seconding Ruby, just for _why's guide. I've never read anything that makes me so immediately enthusiastic about coding, and it still has that effect when I reread it. I wish I'd known about that as a kid.
I've always liked Chris Pine's tutorial (http://pine.fm/LearnToProgram/), because you can go through them with someone who's paying attention in about two hours. I do love _why for self-teaching, though.
My biggest recommendation, though, is that once the kid has any sort of "foundational" programming language under his belt, you write a Scheme interpreter together, in that language, and then show him that the interpreter you just wrote can run Scheme files that already exist (possibly ones you pre-prepared.) That's the best way, I've found, to burn into someone's head that there's no one-true-language, and to get their mind started experimenting with "what if the language was different in way X? Could I code that?" trains of thought.
Somebody downvoted this entire thread; no clue why. I've never tried Hackety Hack, but it looks like a really interesting tutorial set. Thanks for the tip!
I'd also recommend Ruby and suggest you take a look at Shoes (http://shoooes.net/) which makes it very easy to code GUI-apps with all sorts of fun-stuff in them like animations, downloading data from the web, videos.
The most important part in teaching a 13 year old programming is to let him have fun and a give him a sense of achievement. The rest will come.