Полагаю, есть два способа достичь этого.
Ваш первый вариант - использовать инфраструктуру AOP для внедрения инструментария в качестве шага после компиляции. Это может быть точно нацелено и позволяет вам делать практически все, что вы хотите, но работает лучше всего, когда вы можете изолировать желаемые дополнительные поведения от остальной части кода. PostSharp является ведущим соперником в этой области, но я уверен, что есть и другие.
Ваш второй вариант - подключиться к API профилировщика, что и делают TypeMock Isolator и собственные Moles от Microsoft. По сути, это дает вам возможность перехватывать все, но является достаточно программно-инвазивным и, конечно, не тривиальной задачей для реализации. На самом деле, я бы никому не рекомендовал такой подход, кроме как упомянуть его для полноты.