It is quite inefficient to have a whole train and all i's passengers stop at every station, even though only a small fraction of passengers enter and leave on each station. Also, express trains have the drawback of not being able to take on and leave passengers on a lot of stations. There is additionally the problem with adding multiple railway-tracks to the city center, where people want to get on and off trains.
To remedy this, we could create city-loop railways for passengers to connect to each city.
These city-loop railways would be trafficked by motor-wagons that connect to the back or front of the main high-speed train, and allow passengers to between the main high-speed train and ther city-shuttle, while the high-speed train only have to decrease its speed a bit, but doesn't have to stop.
There are similar ideas, and solutions, but none that solves all three of the above problems in a cost-effective way.
The train passing one station would pass through the following sequence of events.
1a. Passengers on the high speed train are notified that they need to move to the shuttle section (shuttle 1 in this case) if they are going to embark at City A. This should happen a few minutes before the city is passed.
1b. Passengers wanting to embark on the high speed train enters Shuttle 2 which is parked at the railway station of City A.
2. Shuttle 2 leaves City A's railway station with passengers.
3. At a specific time, the door between Shuttle 1 and the rest of the high speed train and the shuttle is locked. Before the city-loop for City A is passed, the shuttle is disconnected and slows down to have time to be reconnected to the city-loop track.
4. Shuttle 2 is switched from the city-loop and onto the high speed track. It speeds up and catches the high speed train (which moves at an intermediate speed).
5. Shuttle 2 connects to the high speed train, and passengers are required to move from shuttle 2 to the main high-speed train as Shuttle 2 will be used again when City B is passed a while later.