It's been a while since I've done something like this, but something like this will work:
#include <time.h>
time_t t2, t1 = time(NULL);
while(CONDITIONS)
{
    time_t t2 = time(NULL);
    if(difftime(t2, t1) > timeModifier)
    {
        //DO the stuff!
        t1 = time(NULL);
    }
}
I should note, however, that I'm not familiar with the precision of this method, I think it measures the difference in seconds.
If you need something more precise, use the clock() function which has the number of milliseconds since 12:00 AM beginning January 1, 1980, to the nearest 10 milliseconds.
Perhaps something like this:
#include <time.h>
clock_t t2, t1 = clock();
while(CONDITIONS)
{
    t2 = clock();
    if((t2-t1) > someTimeElapsed*timeModifier)
    {
        //DO the stuff!
        t1 = clock());
    }
}
Update:
You can even yield the CPU to other threads and processes by adding this after the end of the if statement:
else
{
    usleep(10000); //sleep for ten milliseconds (chosen because of precision on clock())
}