Go to the third-party stores (i.e., Wireless Wave, Telephone Booth, etc.). I've had way better luck buying from them than from Rogers both times I've bought an iPhone.
Don't bother calling stores. Lots of them tell anyone who calls they have no stock because it disappears to fast anyway. You just have to keep going in. Or, if you have a day off, go to a Rogers store first thing in the morning and hang around all day. If they happen to get a shipment in that day, you'll get your phone.