Isso é verdade, porém o Terminate não garante que o Thread terminou, apenas seta o Terrminated para True. Ou seja, o programa pode ser fechada com a Thread ainda em execução e dependendo do código isso pode ser ruim. O WaitFor vai garantir que a Thread realmente saiu do ar, podendo-se encerrar a aplicação com tranquilidade.
[As partes desta mensagem que não continham texto foram removidas]