そのDLLが複数スレッドから呼ばれることに耐性が無いのでは?
中でグローバル変数使ってるとか。

DLL呼ぶ部分をクリティカルセクションで囲ってみるとか。
それと、VCLと併用するならBeginThreadの方がよさそうな気がします。