Whenever I've reserved a hotel room online, I have had to use my credit/debit card. Also, always have to give them my card for
incidentals when I check-in.
You may be able to use a pre-paid Visa card to reserve the room. Just buy the card from Walgreens, Walmart, or your local grocery store and put enough on it to reserve the room plus an additional $50-75 for incidentals. Not sure if they'd accept that or not though.
I've never encountered a hotel that doesn't charge you for the room if you cancel within 24 hours of check-in. If you cancel outside of the 24 hours, you won't get charged, but within the 24 hours of your stay, you're out the money.
If you know of a hotel that lets you cancel last minute without being charged, please tell me which one it is so I can use them.