TerminateThreadでできるが・・・

MSDNより
>TerminateThread 関数は、スレッドを無条件に終了させる危険な関数であり、非常に特別な場合にのみ使うべきです。
>対象とするスレッドが何を実行しているのか正確に把握していて、指定したスレッドが終了の時点で実行している可能性のあるすべてのコードを制御できる場合にのみ呼び出すべきです。

タイムアウトしたら親スレッドから強制終了しなきゃいけないようなプログラムはあんまりよくないと思う
別の方法で終了できないか考え直したほうがいいんじゃないか?