The best way to get better at anything is to practice, practice, practice.
To make a horse more responsive to cues, give them often. Rather than trotting around the arena for 10 minutes, transition at every letter, to a canter, to a walk or to a halt. Keep changing it up. Don't just go round and round the arena, throw in circles and serpentines. Never make a full lap around the arena without having done something at some point, a transition or a change of direction.
Changing it up constantly Forces him to pay attention constantly as he has NO idea when you're going to ask for something new.
Getting his attention is important, but you need to be sure to be giving the cues accurately and relieving the pressure Immediately! So gradually increase pressure of cue until the desired response, then immediately relieve pressure. When you start asking for one skill use the least amount of pressure possible, then gradually increase until the horse responds, slowly decrease the amount of time it takes for you to amp it up to a stronger pressure. Example: Asking for a trot, squeeze gently with your legs, if no response squeeze tighter, no response add a kick, no response, add a big kick, no response, add crop. Gradually decrease the time between each 'step' so that the horse realizes he really better go with the gentle squeeze rather than the big kick. Repeat this over and over until he's readily changing gaits for you.
Any horse can be made more responsive (not all can be perfect, but they can all get better!) by being given clear, consistent cues, immediate release of pressure, and lots of changing it up to keep them focused.