You could try setting up a subscription based smart list. In the smart list tab you could use the 'member of program' filter, and specify so that the member of program is 'true', program is 'insert name of your program', and program status is 'registered'. Then click on 'List Actions' and select 'New Smart List Subscription'. From there you could select the list of recipients to receive the list of registrants.
The only issue is that the frequency options are limited in that you wouldn't be able to select to send the list out on just one day or even specify the hour that it's sent out.
This would be so easy if this capability existed: Create "one-time" triggered reports
Creating a subscription to a smart list every time - and remember to disable it after it's been run once - can be a real hassle.
If your naming scheme is consistent you could create the report to be within the last week and everyone associate to xyz list starting with... That way it is a one time report that just goes on and on.