I found a good exercise by accident when we had a few muddy spots in our ring. Picture a clock. Put jumps and 3 & 9 o'clock. At 12 o'clock, establish a 20 meter circle either at trot or canter, whatever gait you choose. The trick is to have the jumps set up in a location where once you come off the last curve of the circle, you're slightly inside of the jump to where you have to leg yield over ever so slightly to the fence in about 4 strides or less. (leg yield part keeps the horse in the outside rein where he belongs and prevents an all out dart to the fence since he's not traveling completely forward). When and only when you have a nice consistent circle going, approach and jump the fence. After the fence, repeat the circle at 6 o'clock. Again, keep circling until you have the gait, tempo and speed that you choose, not the horse. Don't let him bully you into what he wants. Once he figures out he'll be circling all day if necessary, he should become more cooperative, although it varies from horse to horse. Good luck!
You just have to see your distance...you don't have to like it.