Hi Ankush,
firstly I assuming that you already sorted out how to send out SMS from CRM, if not please see following links..
http://support.expressware.co.uk/content/5/14/en/integrate-sms-into-dynamics-crm.html
http://www.365advisor.com/Video-0f4811c785c3f282
http://www.youtube.com/watch?v=FB4lm1tHzS8
http://social.microsoft.com/Forums/en-US/crm/thread/966b5a66-61c5-4321-99e3-fc405f491181/
Now regarding timing you can achieve this in mutiple ways (but whatever way you go for you need to write custom code for the same). one of potential option described below..
1. create new Entity called SMS and then when email send to customer first time, create new record of SMS in CRM with status "Pending Send"
2. this entity should have person country and time zone and as well GMT time (or UTC time) to send this SMS to the customer
3. When create SMS record calculate GMT Time (as per requirement make sure it comes between 8 AM to 8 PM) and store in this record.
3. Based on your SMS integration, have service running in back ground (periodically may be once 1 hour) to retrieve all pending Send SMS records and for which GMT time is up sent them and change status to Sent.
Hope this helps..
MayankP
My Blog
Follow Me on Twitter