So the thing with keeping the exact same time across all machines, and regions, and being 100% the exact same speed just isn't possible (I don't think anyway) on the console without ancillary hardware inside of the cartridge (such as a clock). This is because you'd have to rely on everything to utilize the same code/hardware/standard, which there's no standard to keep things uniform.
That being said, you can get close by keeping a counter ticking during vblank. Here's some skeleton code of how to set that up:
Dim ClockSpeed As Integer
Dim Timer As Integer
Dim hours As Integer, minutes As Integer, seconds As Integer
If TvType() = 0 Then
ClockSpeed = 60
ClockSpeed = 50
On VBlank GoSub vblank_routine
While 1 'infinite loop
Locate 0,1: Print "Clockspeed: "; ClockSpeed
Locate 1,1: Print "Timer: "; timer; " "
Locate 2,1: Print "Seconds: "; seconds; " "
Locate 3,1: Print "Minutes: "; minutes; " "
Locate 4,1: Print "Hours: "; hours
If Timer = ClockSpeed Then
Timer = 0
If seconds = 60 Then
seconds = 0
If minutes = 60 Then
minutes = 0
Hope this helps