Macro or Function: Update a field and PAUSE for 30 seconds between records?

Macro or Function: Update a field and PAUSE for 30 seconds between records?

I want to update a value in ALL of my open "Leads" with the push of a button and I need it to pause 30 seconds in between updating each record.   It doesn't matter which field is updated i just need it to update each record so that a workflow will be triggered.

For example:
1) Update Record 1 custom boolean field called "UpdateMe" to be TRUE
2) Pause 30 seconds
3) Update Record 2 custom boolean field called "UpdateMe" to be TRUE
4) Pause 30 seconds.
etc. for all open leads...

How can this be done? If you say, custom function, can you lay it out exactly how I would set it up? I've never done one before.