Unitysupports it if you are looking for an existing engine.
Surface RT and Surface Pro are slightly different beasts. Why Microsoft made the decision to use ARM chips in the first Surface and the Surface RT is beyond me. It was a stupid mistake and the two systems are likely to die quickly because of it.
Surface Pro will run your traditional apps without a problem. If you want to write your own from scratch the touch api is built into the Windows SDK and doesn't require anything special to use. You can use the Surface API if you want access to some device-specific functionality. If you want to release on Windows Store you just write your program the same you would write any other Windows program, occasionally checking it against the certification requirements.