This is scriting. Therefore give the flag a name and set a waypoint (this is where the units start) and open the scripting menu in the worldbuilder.
Script 1:
Script conditions:
If Unit 'Flagname' belongs to player 'Playername'
then
Actions if TRUE:
start timer 'Troupsarrive' with 'XXX' seconds
Script 2:
If Timer Troupsarrive is finished
then
spawn units
Spawn units can be different things:
Either you just spawn the units (spawn unit xyz at waypoint 'spawnname').
Or you spawn a whole team. Therefore you go to the team-editor first, go to the player which should get the units and add a new team. Then you can give this team units, f.e. min 1, max 1 Mordorfighterhorde.
Afterwards you say in the script:
Spawn an instance of team 'teamname'.
If you want the units to move in the map you have to additionally set a waypointpath (klick on the spawnpoint with the waypopinttool, hold it and pull the mouse somewhere else. A second waypoint will appear and a red arrow.)
Now you have to name the waypointpath and add as a second action:
Have team/unit follow waypointpath.
or you just add another waypoint and say: move team/unit to waypoint)
They can't get upgrades, because it isn't defined in the inis.^^ You have to add the upgrades to the unit with the inis. I personally would say: Try it yourself, you learn most by doing it yourself^^)