This may be an "opinion-based" question, so, I hope my suggestions, coming from an experienced Torah reader may assist.
First of all, halachically, there is no requirement for a Bar Mitzvah to read any part of the Torah whatsoever. The party is also not a requirement. I mention this only as this may ease the stress of thinking that you must do any of this.
Having said that, yes, theoretically, one can learn from on-line resources, CDs, etc. However, after having taught lessons to a few kids previously and listening to several taught by others, I have to say, honestly, that some boys just can't "make it", no matter what. The Hebrew pronunciation is terribly off, and when one reads Torah and / or Haftarah, these are an absolute requirement. Pronunciation of each word musty be 100% accurate. (Yes, I know that there are various shuls that aren't finicky about this requirement, but, I will be blunt by saying that they are plainly wrong.)
So, the first requirement is that your son can flawlessly read and pronounce the Hebrew words he will be reading. The next requirement is having a musical ear. He doesn't needa good voice, but an ear to accurately sing the appropriate trope (cantillation) notes required. Next, he needs a good memory, because the notes are not written in the Torah. Lastly, he needs discipline and patience. He must practice regularly at a regular schedule and keep at it. I've seen plenty of teenagers that are being pushed to read their Bar Mitzvah parsha, and they sound bad mainly because they haven't practiced enough, were never interested and motivated in the first place, and were forced to do this to make their parents "proud". My advice - If your kid puts up a tough fight against doing it, please don't force it.
Now, assuming that all the above requirements are "kosher", I strongly recommend a personal tutor who will listen to your boy's performance, offer advice, feedback and constructive criticism. As I said, the Torah reading is a precise skill, and an online source will never give you the critical feedback.
You can do this via Skype, etc. It's not the same as a personal meeting, but, I'd think it comes close.
I hope this has been useful.