In theory, NCrunch should already be doing this. Before attempting to abort test execution due to timeout, NCrunch will make a call to Debugger.IsAttached to see whether there is a debugger attached, and if so, it won't abort. The NUnit timeout mechanism relies on the version of NUnit that is being used, which should be the 2.6.2 version packaged with NCrunch. So if you're getting timeouts with the debugger attached, it means that something is going wrong here. When you receive a timeout message, are you able to post it here?
Thanks!
Remco