TimerTask и Thread ведут себя одинаково независимо от того, запускаете ли вы их с помощью Groovy или Java.
TimerTask облегчает выполнение одноразовых или повторяющихся задач с использованием Timer.TimerTask действительно не имеет ничего общего с потоками, за исключением того факта, что Timer будет выполнять эти задачи в фоновом потоке (хотя это может рассматриваться как деталь реализации класса Timer).
Поток с другой стороныhand, это низкоуровневый класс для параллельного выполнения что угодно в отдельном потоке, и не предоставляет никаких функций синхронизации или планирования заданий.