The clock() function does not return time in milliseconds, as you assumed. To get the time measured in milliseconds, you need to divide the returned value by CLOCKS_PER_SEC.
I've fixed up your code and added some improvements:
#include <stdio.h>
#include <time.h>
int main()
{
clock_t nextTick = clock() + CLOCKS_PER_SEC;
while (1)
{
clock_t timeNow = clock();
if (nextTick <= timeNow)
{
nextTick += CLOCKS_PER_SEC;
printf("internal clock = %ld\n", timeNow);
}
}
return 0;
}