My OTTB did the same thing so what I did was a very small circle to the left and put my left leg on so his left hind with cross over his right but then catching it and putting your right leg on and having the right shoulder cross over the left. and opposite direction to keep them balanced. It makes you need to have control over the whole body. Another thing is you need to keep your right hand higher and because my boy would bulge so much my leg wasn't strong enough and he was still learning how to move off the leg I would carry a dressage whip and when he bulges put my leg on, keeping my hand high, and press the whip to his shoulder. Not hit just press to signal the shoulder to move over. Eventually he learned and he doesn't bulge but it just takes persistence and patience. Hope that helped :)
Spirals on a circle going inside and back out. Do them slowly at a walk, trot and eventually a canter.
Focus on using your legs to balance the horse and keep them from falling to the inside, step on the outside stirrup, just step do not lean. Hold your reins together and level, not dropping one or the other. Mind your upper body to keep it straight and not dropping your hips/shoulders to the inside of the spiral.
softening drills, stretching warm ups and cool downs are probably something that could help. Even though it appears you are more into English riding, there are a lot of western riding techniques that could probably help your horse. Good luck!
Put 4 poles on the ground in a + formation. Slow trot a circle, trying to stay in the middle of each pole and ask the horse to pick up their shoulder. This is what one person suggested I did with my lease horse and it worked great. It helped reinforce that she had to listen to me when I asked her to pick up her shoulder so when we started cantering again she followed my cues to lift her shoulder. I hope this makes sense and/or helps! :)