You can build a service (accessed via webhook) that returns a Coupon Code field 1000 times before shutting down. Send the returned code to the user via email. And when you see the first empty result for Coupon Code, send yourself an alert to disable the LP/form.
Alternately, you can go down the path indicated atCap event attendees with form logic? and update a Resource Lead with a counter value. In this case you can give every lead a unique coupon code in advance, but you will only dispense 1000 of them. Update the counter field on the Resource Lead and when it hits 1000, turn off the page/form.
Or use a combination of the above approaches. You'll need someone with dev skills on hand.
Also, due to the out-of-band/asynchronous way the counter is updated, the process may allow a few last stragglers to fill out the form even though you won't end up sending them a coupon code (see other comments underCap event attendees...).