Are your enemies their own nodes?
If they are you could add a timer child (delay_timer) to their node then change your code to:
var delay_scale : float = 0.1
var counter : int = 1
for enemy in enemies:
enemy.$delay_timer.wait_time = counter * delay_scale
counter = counter + 1
This would set a timer in each successive enemy that is slightly bigger than the last. Then each enemy needs to react to this timer timing out.
In your enemy script connect the timer timeout call to the root node and add the code:
func _on_delay_timer_timeout():
act(self)