OK. My horse has a saddle that fits GREAT (and has been customized to him by a very highly regarded professional saddle fitter) so it's not always just saddle fit. That's the place to start, all right. But once you know the saddle fits fine, the question is "what to do".
My boy is a retired GP show jumper, and he was sent to a retirement home that did NOT care for him and then sent him to auction.
He's got well over a decade of stuff with the USEF on the pro jumping circuit, so I'm going to assume that his currently crummy topline is a relatively recent development, due to neglect...because as we know, it's NOT from saddle fit (although that was certainly...challenging).
I'm going to share what my horse's chiro has been advising me on the subject of building that topline:
1. hill work. Sounds like someone has already suggested that to you since you mention you don't have access to hills. But I want to say this doesn't have to be mountainous
hills. An uphill driveway can do the trick, at least to start.
2. trot poles. What I've had recommended to me is a stream of 6 or 7 cavaletti, spaced out appropriately, and sending the horse (regularly, frequently, and consistently) through them at a trot. I don't totally know how "appropriate" is measured. I have a 16.2 Dutch Warmblood, and I have size 10.5 (euro size 41) feet, and I space the cavaletti 5 foot-lengths apart for my horse. Scale is everything, on this one.
3. This is one that my chiro came up with because I can't really take my guy on the hills (he is FREAKY about bugs, even with a Quiet Ride mask on and TONS of fly spray, and all of our hills are in thick woods), and because of his pro jumping history, he jumps
those cavaletti instead of trotting them. We've been working on this, and I think I've found the answer, but in the meantime... the chiro has suggested bringing him to a halt in the ring, then backing him for as many as 8 or 10 paces, then squeezing him into a trot for several paces, then transitioning down to the walk. Rinse, lather, repeat, for like 10 minutes.
YMMV, but maybe something here will help. I know what a trial this is...