Это не совсем то же самое.
Шаблоны эффективно генерируют функции с различными сигнатурами во время компиляции. Вы можете довольно легко скопировать-вставить или сгенерировать все эквивалентные методы самостоятельно.
Виртуальные методы используются для принятия решений во время выполнения, поэтому, хотя они и облегчают работу программистов, их довольно сложно заменить. Вы не можете просто скопировать и вставить код для симуляции виртуальных функций, но вместо этого вам придется реализовать почти то же самое самостоятельно, используя таблицу таблиц указателей функций, похожую на vtable, или другой альтернативный подход.
Короче говоря, виртуальные функции значительно облегчают выполнение некоторых вещей, которые в противном случае были бы трудными, но это другой набор вещей, на которые не влияют шаблоны.