Ok, got it. From what I see I think you should approach this from other side.
Don't add enemies to the Array when they are spawned, but rather add them when they are destroyed. In short it means that you don't need to count down for 100 spawned enemies but for 100 killed enemies. If enemy is still alive we don't really need any values in the array for it.
It's just part of the code and I can't see rest of it, but also You don't need countdown global variable here, just type in values (30,60,90...) right to the array.
also to make it easier for you, so you don't need to make events for every LevelXP to set array. if you take that each next level is always 30 more than previous one you could do just one event to control all enemies LevelXP
for example
enemies: On destroyed - > Array: Set value at (enemies.loopindex, 6 ) to enemies.LevelXP*30 - or any other math expression to describe your leveling system.
Tell me what is happening on the screen in the game. Are there only a few enemies that you kills and then they are recycled, or enemies spawn every X second, so you can end up with for example 100 of them on the screen at once?
EDIT: Ok it's not nice to edit the post while someone is writing a replay let me reread what you have edited to see if what I wrote still make sense.