How can you schedule messages on an iPhone?
While there is no native option to have the message sent at a scheduled time, I have been using an app Called Auto Sender for the past month or so, and have been finding it works very well. 

How it works is by storing the message on their server, and then sending the message from a generated number at the scheduled time. While it is not possible to have the message automatically sent from your number due to restrictions placed by apple, this method works well if you don't mind it coming from a different number. It also automatically includes your number at the end of the message, so the recipient knows who sent it. It also offers a signature that will appear at the end of the message, which allows you to enter your name in if you would like.

For the past month or so all my messages have been sent exactly on time! While there is a cost associated with each message due to them storing it on their servers, I find it cheaper then any other iOS alternative.