I think its the timer function.

var start_base=timer();

and it returns in microseconds
rather in milliseconds. But the same principle
is the same to count and measure them.

and here is the code.
try different values for the literal number value that is added to start_base.

Code:
 ////////////////////////////////////////////////////////////////////
#include <acknex.h>
#include <default.c>

////////////////////////////////////////////////////////////////////

var update_var;

PANEL* first_pan =
{
	digits (10, 20, 2, *, 1, sys_seconds);
	
	
	 digits(20,100, 10.2, *, 1, update_var);
	
	digits ( 70, 200, 2, *, 1, sys_hours);
   digits ( 90, 200, 2, *, 1, sys_minutes);
   digits ( 110, 200, 2, *, 1, sys_seconds);
	
	 
	flags = VISIBLE;
}

/////////////////////////////////////////////////////////////////////

function main()
{
	
	var  start_base=timer();
	video_mode = 7; 
	screen_color.blue = 150;
	

	
	while(1)
	{
		
		 
		  if (  ( timer()>start_base+5000) )
		  {
		  	
		  	 update_var+=1;
		  	 start_base=timer();
		  	
		  	
		}	
		 	
		 	
		
		
		
		
		
				
		wait(1);
		
	}
	
	
}



cheers