You could create a new field on the lead entity to hold the time zone offset. Then have about 24 if-then statements, one for each possible time zone entry on the new field. Then have the workflow wait a certain amount of time based on the condition
of the if-then.
But this could leave a large number of emails in a wait state which could be problematic, and wouldn't be my first choice.
What you may consider is similar to the above, but set the workflow as run on demand. Then create a console app that calls into CRM to query all the leads with the same time zone offset (based on your current time zone), and then fires
the workflow against those specific leads to send the email. Then the workflow no longer needs 24 condition statements, and no workflows need to sit waiting. You can run the console app from a workstation. But it could be automated by running
it as a scheduled Windows task each hour. You would have to monitor the CRM server performance during those calls to make sure that they didn't interfere with normal user interaction.
Jason Peterson