It's because of how events work.
Event 10 (your "Every 8 seconds" count) is a sub event to event 9 (the blank event) which is true every tick.
You should rather put in event 8 the conditions :
System: Every 8 seconds
System: enemies_number =not 0
and put the actions of event 10 in event 8.
This way, every 8 seconds C2 would test if "enemies_number" is different than 0, and if it is, it will spawn a new sprite.
Else, the condition being false, the actions wouldn't be executed.
Also you don't necessarily need a global variable to keep count of the instances number.
Considering your object type is a sprite named "Enemy", you could instead of "System: enemies_number =not 0" having a "System: Compare two values" condition, its first field being "Enemy.count" not equal 0.