Spyder gave you some great advice.
I would also add that the best idea to help with a one sided horse is circles. Circles, and spiral ins and serpentines, where you are almost exxagerating the bend (although make sure the bend is coming from around his ribcage and not simply from his neck). Because you don't JUST want to work on the one side that is weak; instead you want to make it so that both sides work evenly.
Shoulder ins are only effective if they are done right, otherwise, they can have an adverse effect of unbalancing the horse completely on the side that you are trying to fix. So make sure you understand exactly how to ride one - and it might be beneficial, especially if he's stiff, to have a more experienced rider get on him for a couple of rides to help him through it the first couple of timesd.
I would also suggest riding on the quarterline instead of the wall, so when you go straight, you can get a feeling of how straight he actually is and how much leg it requires for you to keep him straight and away from the wall. If you're consistent with your legs, you'll find that you can get him to step much more evenly on both hind legs than you would if you were travelling up alongside the wall.
Finally, look at getting him a good chiropractor/massage. Something could be a bit out of allignment that is causing this one sideness, and if that's the case, they usually feel much better afterwards :)