Проблема в том, что в виртуальной машине пройдет непонятное количество времени между фронтами клока, который мы синтезируем программно. Т.е. мы программно рисуем времянку, а в реале каждый такт умножается не неизвестный коэффициент. Насчет "аппаратности синхронизации в LPT" согласен.