Note that StarCraft will check each trigger in a very very short amount of time - probably less than a millisecond for a single trigger. It can easily check an entire list of triggers in less than a twelfth of a second (which is why hypers can work that fast in the first place).
Which means that if you have a separate trigger for every city (which i think most diplo maps do), they'll
all be checked easily in a single trigger cycle. Which means that they all
can fire on the 2:00 mark.
In addition, if you want a trigger to fire more than once per trigger cycle, you can always simply make multiple copies of that trigger. Or if possible, a more efficient method is to make a 'binary counter' type system.
Anyway, if you want to reduce the number of different triggers (that is, not have one per city), then you can try counting the cities off for each player by giving them to another player (eg p9). You won't need a separate 'give-to' player for each human, because each player's trigger list is checked separately and finishes before the next player starts.
What I mean is this:
| Trigger |
| Conditions: |
| ¤ Current player commands at least 1 'city' |
| Actions: |
| ¤ Give 1 'city' from Current player to player 9 |
| ¤ Give player minerals |
| ¤ Preserve trigger |
Copied as many times as necessary,
With a trigger to give all p9 stuff back to the Current player when they no longer control any cities.
Notice that you don't need any switches nor deathcounts

But do whatever you feel comfortable with.