st3v1e:
As far as I understand, the recipent does not need to be online, but the messages are not stored forever, so he has to come online at some point (before Apple deletes it - I have no idea how long that is). Your message should be marked as sent even though the recipient is offline, but you won't get a "delivered" status (or "read" obviously) until the person is online again.
You should be able to hold your finger for a second or two on a message and select "Send as text" (it may say something different, my iOS is not in English) to send a normal SMS text message. But if both of you has iMessage, it shouldn't be a problem. I don't think this necessary to say, but iMessage ONLY works for people with iOS devices. BOTH of you has to have an iOS device. If your friend does not have an iOS device anymore, you won't be able to send iMessage messages to him.