Application.Lock()/Unlock()はApplicationオブジェクトの排他制御だから関係ない。

FileSystemObjectにもそれらしきものは見当たらなかったから、適当にロックファイルを作るしかないんじゃね?
ロック開始時に適当な名前でファイルつくってロック解除するときにファイル消すとか。
I/O負荷やファイルが残った場合のことを考えるとオススメできんけどね。

DBにデータを突っ込んで都度自動生成するの真っ当ジャマイカ?