You don't have to be an American to have a SSN.
Whether or not Residency is requiered I do not know. Look into what it takes to get a SSN.
Once you've got a SSN, you could get a CC form companies that give very little Credit (Usually $500) for people without a Credit History. Most TeenAgers get theese once they turn 18.
Then make sure to use it a get yourself a Credit History, and then maybe after a year or so you should be able to get one of the CC which give Miles.
Also Remember that each CC company charges a Diff. % on Exchange rate. MBNA is supposedly the best. But this is something you've gota look into before deciding to charge Canadian Dollars on an American CC.