Looking on the php source code
if(6 == EG(windows_version_info).dwMajorVersion && 2 >= EG(windows_version_info).dwMinorVersion) {
GetSystemTimePreciseAsFileTime(&ft); /* highest possible resolution <1us */
} else {
GetSystemTimeAsFileTime(&ft); /* 100ns blocks since 01-Jan-1641 */
}
it seems like Windows 8 has more precise timing function so that's why it's not repeatable on that version.
I was able to fix this problem by using calibration tool from http://windowstimestamp.com.
Thanks everyone for the answers!