Two things helped my guy (5 this year, started under saddle april 2015, narrow weedy arab fella) learn to gather himself up into a canter that is ‘more ready’ to do things. Your issue does sound kind of like a strength/balance problem similar to what I had, so maybe what I did will help you.
Thing 1: March your horse up and down hills at a solidly clippity cloppity walk on a fairly sloppy loose rein. Biggish, steepish hills. Hills that you don’t really want to walk up. Those hills. (Start with one up/down, build gradually to doing several repeats every time you ride him. This is Hard Work for your horse and he’ll need a few months to build up the muscles and balance he needs to do a good job at this work.) On the uphill, you want a flat walk on a sloppy loose rein, with his head low. You want to feel him pushing hard with his hinds, in a good rhythm. The reins should swing back and forth, visibly, as he marches. Don’t let him jig or trot or go pell-mell downhill. (If he does, halt and have him back several steps with his butt pointing straight up the hill. Then give him back the reins and have him try again. Take the time it takes to do it right.) Hill marches are a low-impact, low-stress way to engage the “ring of muscles” a horse needs for a more gathered-up canter or collected dressage-y work. It’s not an exact perfect fit, but it’s close enough to really help while also being an exercise that’s pretty hard to do incorrectly. Building up the ring of muscles with flat work requires rider skill, but hill marches – the hill will never “ride him wrong” or let him phone it in. The hill is actually a pretty good trainer – very fair, never misses a correction, always demands good work. So, do hill marches, up and down.
Thing 2: Practice rating the canter. I like a very slight uphill or a flat piece of ground for this, with good footing and buckets of room. A hayfield after it’s been cut is ideal if you have that (get permission and check your flight path for holes first). Pick up your canter for like ten strides, then ask to extend it a bit (get a real change in pace, lean forward a hair, apply some leg, click to him, whatever), for like ten strides, then rock your shoulders back, sit up, ask him to “come back” into your hands and canter a little slower and more “gathered up” (like a ‘for jumps’ canter if you know what that feels like) again. You want him to stay cantering, not to break to trot, but get a real change both up AND down in the cantering. The idea here is to introduce the idea of rating the canter… that just like trot and walk, it can go gathered up or more-forward. It came as a shock to me to learn what should be obvious: you have to practice adjustability in canter just like you do in walk and trot. Initially, your two different canters just look “faster” and “slower” – they’re not going to stay that way, but if you can get visible changes of speed to start with, you are on the right track. Keep working on it, always with “start slow, extend, come back to me” pattern… and at least for my guy, the ‘come back to me’ is more “I sit up straighter and more sit-y, take a little of the leg off” than it is a hauling on the reins. Seriously, it’s postural and not hands. If your horse is quite forward, I find this drill works best on a warm, humid day when the horse has been thoroughly warmed up with other activities first. You want him to have to work hard at the “go fast” part and to want to slow down because that will make your job easier.
Also, if he jumps (even tiny x rails) at all, you can use the ‘come back to me’ adjustments (referred to above) for a “hey, dude, we’re aiming at jumps, might want to get yourself ready” cue, too. If he does not jump yet, a series of canter poles on the ground might also help him learn to round up a little in canter. (I thought canter poles would be harder, but they are not. Measure and set them up ahead of time and just… seriously, just do it. Not endlessly, a couple of run-throughs a day is fine.)