A few things that might help; Firstly, you can render the background buildings and apply the result as a texture to simple boxes. This allows the train to be reflected in the windows, but means you don’t have to re-render the interiors for every frame of your animation.
It’s getting a bit light now, so you are losing the effect of your lights and obviously, if you add lights from the train, you will lose them too.
Oh, and there is something weird about the pattern of lit windows. Generally, if there is a building that has windows allround like yours have, if one window on one side of a corner is lit, so is the other around the corner, as they look into the same room. Also, rooms tend to have 4 or more windows, as they are often office blocks. Think out how large each of your windows is, and how big the rooms are. Remember that in big blocky buildings like that, rooms tend to be large, because otherwise the light does not penetrate into the interior of the buildings. They are generally not full of very small square rooms, which is how your buildings come across. If you visualise your buildings as they are, there is a huge amount of the interior of the building which would have no external light at all. This would be very unusual.
This is a biggy- when a real high speed train goes around a corner, it is banked into the corner, otherwise all the people inside fall over. Your train doesn’t look fast, because it is cornering but still horizontal. You wil get a lot more wow from your animation if the train banks into the curves. Also possibly if it is longer, but that’s just me.