A good age to start training him is now. When he pulls, simply stop going forward. That is his reward. He wants to go forward and so he pulls to hurry up and get there. Withhold that payoff until he gives you slack in the leash, then resume walking. When he is walking nicely, praise and treat. You can also make random turns, saying, "let's go" in a cheerful voice. Make training fun with a little playfulness and he'll enjoy learning new skills. You can turn and go the other direction too to keep his attention more on you. Be careful you don't jerk his neck though. Shorten up the leash so he has a harder time getting in front of you. Again, show him (lure him) with a treat into the area you want him....on your left side. I wouldn't worry about a perfect heel now. Just get the loose leash walking comfortable. Be sure that the minute he is walking, even a few steps nicely, praise him and give him a super yummy treat. Show him that that behavior is what earns him reward and that the sloppy walking and pulling does not. It will take you forever to walk down the street. But that's the way it is. It's more important to get so you can have an enjoyable walk as soon as possible. Practice with the least amount of distractions around at first.
For dropping a toy or giving you the toy straight to your hand, play a game of trade. Do it inside at first. Have some treats ready and ask him to "give" and when you have your hand on the toy, with your other hand give him a treat. Praise and hand him back the toy right away. He learns that it's no big deal to give up a toy because he'll get it back. Do this back and forth. When that gets good, then show him "drop it." Put the treat on the floor as you say, "drop it" and when he let's go of the toy and goes for the treat, say, "goooood drop it." LOL. Do these things back and forth like a fun game, lots of praise, treats. You can even then try a little retrieve. Just make sure there is motivation for him to give up his toys and lots of praise for doing so. And then give them back to him again.