When you ask for the canter, does he throw his head up, speed up and get very heavy on the forehand? If so, he's just not balanced. Ironically the secret to a good canter is a good trot. Trotting helps with balance more than any other gait.
I find doing a lot of trot canter transitions, we're talking every 8 strides or so, to get him more engaged and listening to the rider, help get them off the forhand. That will also help if he's just being a butt head and getting strong at the canter instead of doing what you want.