I suppose it could be done for aerial bombardment, but I'm not sure for other ranged attacks.
You'll have to use RunCombatSim and EndCombatSim events, unit:LastMissionPlot() in the first event to get the plot/city attacked, and I suppose city:ChangePopulation() to change the city population....
I just don't know if LastMissionPlot() will return the targeted plot for a land/sea unit ranged attack... (it does for an aircraft)