How does he lead? How soft is he normally, say, with his buddy close by?
It sounds to me, from what you've said, like he needs to soften up a bit and you need to be clearer and firmer in order to get his attention away from getting back to his buddy and to his rider. To soften him, try working on the ground with just the lead rope and halter. He needs to respect pressure and learn to flex.
Start by standing to his side, and pulling the lead rope towards you. Make him flex his neck so that his nose is all the way to his side. You want to get him to a point where he will follow the pressure so well that it's like he's just following your hand. Do this on each side, and then do it in the saddle- pull his nose around to your stirrup.
Also, what kind of bit do you use on him? When you're riding him and he gets strong in your hands, try to bump him with the reins, or wiggle/ see-saw them. When you pull back and hold the pressure, it gives him the opportunity to brace against you and ignore it. But, if you're bumping or wiggling the reins, it makes it so that he can't brace or ignore you. Imagine someone trying to get your attention while you're distracted, either by a task or in deep thought- which works better, grabbing and holding your arm or poking it continuously? You don't need to yank or anything, just a consistent 'tap' on the reins, until you feel him give a bit. Then immediately let go. The problem is that his mind is so preoccupied with getting home and seeing his buddy that he's ignoring/ forgetting his rider, so you need to give him a reminder that you're there and he needs to focus on you.
What do you do when you want him to stop? How do you ask him? I would suggest that when you ask for a stop, you sit deep in the saddle. You may have to exaggerate it at first. It helps to take a deep breath and exhale when you sit. If he doesn't stop right away, then you use a voice queue ("whoa") and then if even that doesn't work, use your reins. See-saw them to get him to soften a bit if he's bracing, and then turn him/ flex his neck to the side in a one-rein stop.