Well, try the easiest thing first, use the build-in pullup:
pinMode(PIN_D2, INPUT_PULLUP);
If that doesn't work, can you tell if the resistor made the pin less sensitive than you need, or if its effect was not great enough. For higher sensitivity, use a higher resistor. For lower sensitivity, use a lower resistor. The built-in one is probably between 20k to 50k (it varies from chip to chip, it's temperature sensitive, and it's probably not really a real resistor at all, but probably a transistor driven by a fancy circuit making it emulate a resistor). You can try using different resistors until you find one that works (if this is an analog signal type of issue where a resistor changes things), using something like 30k of the built-in at a starting point and working up or down until you find one to like.
That is, if adding a resistor helps. I still don't quite understand what you're trying to do...
When used in INPUT mode (the default on Teensy 2.0), the pins are basically "floating". Even the slightest electrical coupling can change their voltage.
Normally touch sensing is done with a library like CapacitiveSensor, or the touch sensitive pins on Teensy 3.0 (which work similarly to that library, but much faster/better). Usually a relatively large electrode is attached to the pin. You read the capacitance and detect changes over time. Here's a video I made that shows how it works.
http://www.youtube.com/watch?v=BHQPqQ_5ulc
Normally you don't use the pins in interrupt mode (eg, with attachInterrupt) to detect human input. Most ordinary mechanical things have "chatter" in the time from of 1 to 10 ms. The interrupts respond extremely fast, so chatter can be a huge problem, giving you perhaps dozens of interrupts for a single event. Usually some sort of low-pass filtering is needed.
Then again, I still don't really know what you're trying to accomplish, so this is all very generic stuff.