Make sure your tack fits, if it does have him checked (via vet or chiropractor). If there is still a problem make sure his feed isn't too high in protein for what you are riding him for. If he starts bucking, apply pressure with your legs (going forward solves most problems). I was taught to NEVER PULL/HOLD DOWN as they lower their heads to buck but that's just me, otherwise I stopped my horse by spinning him in tight circles (yet I was raised western so there was at least a horn to hang on to!)
Does your saddle fit? That is always a good start, then have his back checked if it persists. If he still does it my advice would be to check he is not too energetic - check his concentrate's protein content and his lucerne. If he bucks ride him forward a lot with your legs and pull down on the reins.
I know a horse that has this issue as well. Sadly I don't ride him but I know someone who does. If you want me to contact her about it, let me know. During the lesson where that happened I was watching. You need to pull DOWN on the reins and apply pressure to the horse's sides and have him going in the direction you want. I have never ridden a horse that bucks at the canter so this info could be wrong. Just fyi
Is he fit? My horse was overweight and unfit and wouldn't behave in canter at all. He would buck, run off, and do everything he could to not canter. No he's a lot fitter and healthier and learning to balance his canter. Try working your horse harder and make him fitt
The way to stop a horse from bucking is to send them forward. It is physically impossible for a horse to buck if it is going fast enough. Whenever horse's buck, they aren't galloping forward. Therefore, if you are able to send your horse forward at all and get he/she going fast enough, they can't buck. Whenever a horse I am riding is bucking, I send them forward, because if they stay in the same spot and keep at a slow pace, they will most likely keep bucking. Hope this helps!
If he's doing it because of energy: lunge him first. If he's doing it when he's excited or happy (I know a pony that bucks when he knows he's done well and at shows when he's excited and there's not really anything you can do about it): there's not much you can do except hope he breaks the habit. If he's doing it just because: dig your heels in, pull his head up, and make him move forward. My horse used to do this all the time. Bucking is a cessation of forward momentum so as long as I kept his head up and MADE him move forward he couldn't do it. Everytime I tried I would either halt him and back him up several steps or make him gallop a lap depending on what he did. He's much better now 😊