Два года????

О, ну тогда не нам, жалким ламерам, программирующим по восемь лет, Вас учить! Не подскажите, какой институт окончили, или Вы еще в школе?
А теперь о том, почему C#
в принципе не может быть быстрее кода на C++:
1) Уборка памяти: как может код, который постоянно обходит все объекты и проверяет, не достигло ли количество ссылок на них 0, может быть быстрее кода, этого не делающего?
2) Как может код, компилирующийся во время выполнения (почти интерпритация!) может быть быстрее кода, этого не делающего?
3) Как может код, в котором все функции виртуальные, быстрее кода, в котором это не так?
4) Да, и еще вопрос вдогонку: как вообще может программа, использующая куда больше библиотек, чем c-шная, быть быстрее ее?