Windows не обновляет время lastaccess при открытии файла для чтения, поэтому его нельзя использовать.
Есть два способа сделать это, но оба связаны с опросом системы.
Зацикливаться каждые X секунд и пытаться открыть файл для записи. Если это не удается, тогда файл открыт.
Зацикливаться каждые X секунд и использовать WMI Query, чтобы проверить, используется ли файл.
В любом случае, вам придется обрабатывать последовательные «открытия» в течение определенного периода времени как только один экземпляр.