What are the best ways to improve top end and 400m speed without compromising endurance for a runner focusing on the 1600m/3200m?
learn to run faster. And you really aren't trying to run faster 400s. You're trying to run faster 400s at the end of the race.
So 400 rep sessions are not going to cut it. You need to improve you efficiency and technique. Throw a mix of hard and fast 300 - 400 surges into your training. Mix up the pace. It your ability to handle a faster change of pace that's really your goal.
When I worked with middle distance guys I'd have them work their race pace, then add something else in, then drop back to race pace etc. You need to learn how to run fast, and to adjust to pace.