True but you can recreate the trigger and add the events you want.
That is what I do:
I have an empty trigger 'gg_trg_Taking_Damage' which is modified by the other triggers.
I have another trigger 'gg_trg_Add_Units' which add units to the taking damage trigger once they enter the entire map area.
Then there is the third and last trigger that runs once every ... seconds (in the stress test map it is 35 but you can change that to 15 minutes or half an hour or whatever you want).
This trigger removes the old trigger and creates a new one, adds all units in the map as an event to that trigger and add the action to the trigger.
JASS:
local group g = GetUnitsInRectAll(GetEntireMapRect())
call DestroyTrigger(gg_trg_Taking_Damage)
set gg_trg_Taking_Damage = CreateTrigger()
call ForGroupBJ(g,function Add_Unit)
call DestroyGroup(g)
call TriggerAddAction(gg_trg_Taking_Damage, function Taking_Damage)
In the stress test, the map starts to look buggy after 25 seconds and starts laggin after 30-35 seconds.
I however add the "unit takes damage" event so many times per second that in a real melee game, 12 players require 5.000 barracks each that all continuasly train footmen (which require infinite resources and food) to actually keep up with that amount.
If you create 1 unit per second for each player (12 players), you can play without problems for 2 hours before you have to reset it.
But as you said, you cannot destroy an event but you can re-iniialize a trigger.