My dog is always excited to go on walks. However, he will pull as hard as he can ahead whichever way we decide to go. After walks he has raw marks beneath where the harness lies (we use a harness because he kept choking himself on a collar). However, if I try to stop, he will immediately start to yelp and whine as if he is in pain. This behavior stops as soon as we return home. I am wondering if there is a way to prevent him from pulling so much.
It's extremely likely that your dog yelps and whines when you stop because that behavior results in you moving forward. Once he learns that making a fuss doesn't work, he will stop.
What type of harness are you using. I would recommend using a front clip harness, such as the PetSafe Easy Walk Harness. Back clip harnesses are a sure fire way to teach your dog to pull and pull hard. A front clip harness will force your dog to turn and face you when he pulls, thus ensuring that he doesn't get to move forward (his desired outcome).
I'm a big fan of the 'Choose To Heel' methodology as well. This basically calls for continuous rewards while your dog is heeling and no rewards when he is not. Start the walk inside, with your dog on leash, reward him with a high value treat for not pulling/staying by your side. Walk around your house/apartment a bit, rewarding him all the while for behaving appropriately. Then move out to the backyard/hallway/porch depending on your living situation. Continue rewarding for good behavior. When you're getting consistent behavior inside, or on your own property, move outside. The first step you take outside or into whatever area is the where he normally starts pulling, catch him before he's able to pull and reward him. Even if this means rewarding him as you're moving out the door do it.
If he pulls, stop walking. Under no circumstances should you move forward while he's pulling. If he starting whining, take a few steps back (I call these penalty steps). Only when he comes back to you and sits by your side do you reward and move forward.