Это невозможно.
TransactionScope просто сохраняет время, когда вы начали транзакцию, а затем проверяет это время при совершении транзакции.
У него нет возможности вызвать исключение в любой произвольной точке.
Как правило, единственное исключение, которое может быть выдано в любой момент выполнения (управляемого кода), это ThreadAbortException
.
Поэтому, если вы действительно хотите, вы можете создать отдельную ветку, которая спит в течение времени ожидания, а затем прерывает вашу исходную ветку.
Однако это ужасная идея.