This issue could be caused by a lot of causes.
To start with, it could be a matter of poor data coverage. If you experience the delays at the same time of the day at the same place, maybe that spot isn't that well covered and you just have bad luck receiving messages over there. So if you are always on the same spot, try a different one.
It could also be a connection error. Do you experience the problems when one particular person sends you messages, or with everyone? And do they experience delays too when you send messages to them?
It could be a malfunctioning 3G. Try to turn off 3G (if you can) and just use GPRS. There have been reports iMessages didn't work out well on 3G, but on GPRS it worked like a charm (it doesn't make any sense to turn off and on 3G just to send iMessages, but at least you'll figure out the cause).
And the last, and probably the most unliky cause, could be an issue at the Apple servers. It happens sometimes, when those things get really busy, they protect themselves and spread the work over time. As I said, it's very unlikely, but it happens.
And to answer your second question; yes indeed. If iMessages fails to send, your iPhone will try to send it as an SMS. You can activate this function at 'General < Messages < Send as SMS'