I think you'd need macro.txt for that rather than your manual.
There's the CityProduction trigger which can trigger an event when a city builds a city improvement. I'm not sure if it is triggered for every turn after that too, but you can use flags for that if necessary and create units based on that... You can also @AND the TurnInterval trigger with the existence of that flag...
[Edit: In fact, I very much doubt the CityProduction event triggers every turn after it's been built since it is linked to a civilization rather than a specific city.]
I don't think it's possible to test for the removal of a city improvement, though. So perhaps the best you could do is, instead of having it last forever, have it only last a set number of turns...
The biggest problem, though, is that you can't link the location and home city of created units to the city that triggered the CityProduction. The best you can do is create a list of coordinates for important cities and randomly create your units in one of those spots.
Also, since you'd be relying on the flag(s), it won't actually matter how many cities have that city improvement, because every city creating that improvement would trigger the same event and set the same flag.
The best you can do there is use up the max of 32 flags for 32 different cities...
Code:
@IF
CityProduction
builder=someciv
improvement=whatever
@AND
CheckFlag
who=someciv
state=on
flag=0
@THEN
Flag
Continuous
who=someciv
flag=1
state=on
@ENDIF
And that repeated for all the next flags too. And then for each of these flags you have a separate event creating the units. That way you get a maximum of 32 units per turn (assuming at least 32 cities have the city improvement and only one unit is created per city).
That's all going to take up a lot of events space, though.