а чем тебе не нравится по таймеру, по моему это единственный точный способ (в не думаю что в отдельном потоке можно будет точно синхронизировать события по времени). Недавно занимался разработкой MIDI трекера, там я сообщения посылаю именно из процедуры обработки MMTimer'а