First I would probably have done 4. Nd5 instead of 4. Na4. Your knight would have done more good in the middle of the board.
EDIT: oh nevermind. Steven is right Na4 is better.
You missed another opportunity by not playing 7. Bg2. Black would have had no way to avoid you taking his rook. By the time you went after this rook with 8. Qf3, he had already developed enough for his rook to no longer be vulnerable.
Your right saying that 11. e6 was a dumb move because you are just hanging your pawn. 12. f5 was a good move though.
14. Qh3 was another mistake you made. You should have seen the fork that his knight was about to do and instead done 14. Bxe3 to prevent it.
I probably would not have done 18. b4 to try to break his chain of pawns. Instead I would have played Qe6+.
You might had had an opportunity at mate after you finally did play Qe6+. If at move 22 you attacked his e5 pawn with your knight and then your rook, you would lose them both but he would have to move his f6 pawn in the battle. Then you could play 24. Bg5. Since his bishop is pinned by your queen, and his queen is too far away to help, I don't think he could have avoided you playing Qxe7++ for the win. He probably would have thrown in a few last-ditch checks with his queen, but you would have had mate in one as soon as he didn't put you in check.
If black was playing well you would have had no chance after 23... Qxa4+. He should have immediately attacked with his queen and rook and also castled instead of moving his king. Luckily for you though, he made some dumb moves.
I'm not good enough to really know what I'm talking about, but I think these are some things you could have done to beat him earlier without relying on him to make those mistakes.
I had posted this in the Game Showcase but as I am still a player looking to improve on his game, I would like your opinions and expertise on what moves could have been made differently to gain the advantage earlier (or in my case, prevent myself from going down to near-defeat!).