「動的」を使用することが、ジェネリック型内からオーバーロードを使用する唯一の方法であるかどうか疑問に思います。(int)(object) プレフィックスは少し扱いにくいです。
public class TOfTestCase<T> {
public void otherMethod(int arg1) {
}
public void method(T arg1) {
if (typeof(T) == typeof(int)) {
otherMethod((int)(object)arg1);
}
}
}