No you can't. Programs can only look at blocks in the past, not the future and there is no "until a block is found" operation.
Check
Ethereum Alarm Clock"An ethereum contract that facilitates scheduling function calls for a specified block in the future."
But you'd have to cap the number of your operations, true.