How does ATC maintain separation between aircraft flying at different speeds?
FL250 for a Boeing 737 in cruise at 850 kph/460 knots GS is an unlikely value. Aircraft in the same category of speed, such as the Boeing 737/747/767/777 usually fly at higher altitudes, e.g. FL300-FL400. Slower turboprop aircraft such as the ATR72 usually fly in the ranges of FL200-FL250. During cruise, airspeed will be matched by ATC for all aircraft where the trailing aircraft might catch up to the preceding aircraft.

ATC sees the ground speed on their radar screens and can thus compare and evaluate if they need to assign speeds to maintain separation.


(Image Source: What data does ATC see on their screens? - Speed: 395 knots GS)

R: DLH123, report mach number.
A: Mach .78, DLH123
R: BER456, report mach number.
A: Mach .79, BER456
R: BER456, reduce speed to mach .78
A: Reducing mach .78, BER456


The same principle applies to aircraft in the terminal area, the lower you get, the more will aircraft have the same groundspeed when assigning the same indicated airspeed, as air density and wind approach the same values. ATC will sometimes assign a slower speed to trailing aircraft if they need to achieve the same groundspeed at different altitudes.

R: DLH123, descend to 3000ft, reduce speed to 210 knots
A: Descending to 3000ft, speed 210 knots, DLH123
R: BER456, descend to 4000ft, reduce speed to 200 knots
A: Descending to 4000ft, reducing speed to 200 knots, BER456


For aircraft that still have significantly different groundspeeds on the same airway, ATC can also vector aircraft around the preceding aircraft and put it back in front or they can issue a direct that will achieve the same effect, changing the sequence of the aircraft. A climb or descend can be coordinated with the pilots, e.g. the trailing aircraft can be asked if they are able to accept a climb to another flight level, maybe even temporarily.