Zum einem würde ich das nicht so synchronisieren, da Timer-Nachrichten keine sehr hohe Priorität im System haben, es ist also nicht garantiert, dass das Timer-Ereignis auch immer "pünktlich" ausgelöst wird. Windows ist eben kein Echtzeit betriebssystem. Zum anderen, wie öffnest du die datei und schließt du sie auch wieder, damit sie von der anderen Anwendung zum Lesen geöffnet werden kann.
Zum Datenaustausch würde ich mir andere Möglichkeiten der Interprozesskommunikation überlegen. Du kannst es ruhig mit Dateien machen, aber dann würde ich der anderen Anwendung eine Nachricht schicken, wann sie lesen kann.
Für kleine Datenmengen eigent sich auch die Nachricht
WM_COPYDATA. Ansonsten würde ich mich mal nach MemoryMappedFiles oder (Named)Pipes oder Mailslots umgucken.