Here is some code that will not interfere with cells or undo by showing the ticker in the application's caption. The timer will also continue updating even while you are in edit mode. I suppose you could use the status bar as well?
Example File: Steveo59.255805.zip
In a standard module.
<table width="100%" border="1" bgcolor="White" style="filter

rogid:DXImageTransform.Microsoft.Gradient(endColorstr='#C0CFE2', startColorstr='#FFFFFF', gradientType='0');"><tr><TD><font size="2" face=Courier New> <font color="#0000A0">Private</font> <font color="#0000A0">Declare</font> <font color="#0000A0">Function</font> SetTimer <font color="#0000A0">Lib</font> "user32" ( _
<font color="#0000A0">ByVal</font> hwnd <font color="#0000A0">As</font> Long, _
<font color="#0000A0">ByVal</font> nIDEvent <font color="#0000A0">As</font> Long, _
<font color="#0000A0">ByVal</font> uElapse <font color="#0000A0">As</font> Long, _
<font color="#0000A0">ByVal</font> lpTimerFunc <font color="#0000A0">As</font> Long) <font color="#0000A0">As</font> <font color="#0000A0">Long</font>
<font color="#0000A0">Private</font> <font color="#0000A0">Declare</font> <font color="#0000A0">Function</font> KillTimer <font color="#0000A0">Lib</font> "user32" ( _
<font color="#0000A0">ByVal</font> hwnd <font color="#0000A0">As</font> Long, _
<font color="#0000A0">ByVal</font> nIDEvent <font color="#0000A0">As</font> Long) <font color="#0000A0">As</font> <font color="#0000A0">Long</font>
<font color="#0000A0">Private</font> TimerID <font color="#0000A0">As</font> <font color="#0000A0">Long</font>
<font color="#0000A0">Sub</font> Tick(ByVal dwParamOrCancel <font color="#0000A0">As</font> Long, <font color="#0000A0">ByVal</font> hwnd <font color="#0000A0">As</font> Long, <font color="#0000A0">ByVal</font> Milliseconds <font color="#0000A0">As</font> Long, <font color="#0000A0">ByVal</font> nEventId <font color="#0000A0">As</font> Long)
<font color="#0000A0">On</font> <font color="#0000A0">Error</font> <font color="#0000A0">Resume</font> <font color="#0000A0">Next</font>
Application.Caption = Now
Application.StatusBar = Now
Range("A1").Value = Now
<font color="#0000A0">End</font> <font color="#0000A0">Sub</font>
<font color="#0000A0">Sub</font> TimerAction(Optional StartTimer <font color="#0000A0">As</font> <font color="#0000A0">Boolean</font> = False, <font color="#0000A0">Optional</font> Interval <font color="#0000A0">As</font> <font color="#0000A0">Long</font> = 1000)
<font color="#0000A0">If</font> StartTimer <font color="#0000A0">Then</font> TimerID = SetTimer(0, TimerID, Interval, <font color="#0000A0">AddressOf</font> Tick)
<font color="#0000A0">If</font> <font color="#0000A0">Not</font> StartTimer <font color="#0000A0">Then</font> <font color="#0000A0">Call</font> KillTimer(0, TimerID)
<font color="#0000A0">End</font> <font color="#0000A0">Sub</font>
</FONT></td></tr></table><button onclick='document.all("1031200717255371").value=document.all("1031200717255371").value.replace(/<br \/>\s\s/g,"");document.all("1031200717255371").value=document.all("1031200717255371").value.replace(/<br \/>/g,"");window.clipboardData.setData("Text",document.all("1031200717255371").value);'>Copy to Clipboard</BUTTON><textarea style="position:absolute;visibility:hidden" name="1031200717255371" wrap="virtual">
Private Declare Function SetTimer Lib "user32" ( _
ByVal hwnd As Long, _
ByVal nIDEvent As Long, _
ByVal uElapse As Long, _
ByVal lpTimerFunc As Long) As Long
Private Declare Function KillTimer Lib "user32" ( _
ByVal hwnd As Long, _
ByVal nIDEvent As Long) As Long
Private TimerID As Long
Sub Tick(ByVal dwParamOrCancel As Long, ByVal hwnd As Long, ByVal Milliseconds As Long, ByVal nEventId As Long)
On Error Resume Next
Application.Caption = Now
Application.StatusBar = Now
Range("A1").Value = Now
End Sub
Sub TimerAction(Optional StartTimer As Boolean = False, Optional Interval As Long = 1000)
If StartTimer Then TimerID = SetTimer(0, TimerID, Interval, AddressOf Tick)
If Not StartTimer Then Call KillTimer(0, TimerID)
End Sub</textarea>
In your workbook.
<table width="100%" border="1" bgcolor="White" style="filter

rogid:DXImageTransform.Microsoft.Gradient(endColorstr='#C0CFE2', startColorstr='#FFFFFF', gradientType='0');"><tr><TD><font size="2" face=Courier New> <font color="#0000A0">Private</font> <font color="#0000A0">Sub</font> Workbook_Open()
TimerAction <font color="#0000A0">True</font>
<font color="#0000A0">End</font> <font color="#0000A0">Sub</font>
<font color="#0000A0">Private</font> <font color="#0000A0">Sub</font> Workbook_BeforeClose(Cancel <font color="#0000A0">As</font> Boolean)
TimerAction
<font color="#0000A0">End</font> <font color="#0000A0">Sub</font>
</FONT></td></tr></table><button onclick='document.all("1031200717339913").value=document.all("1031200717339913").value.replace(/<br \/>\s\s/g,"");document.all("1031200717339913").value=document.all("1031200717339913").value.replace(/<br \/>/g,"");window.clipboardData.setData("Text",document.all("1031200717339913").value);'>Copy to Clipboard</BUTTON><textarea style="position:absolute;visibility:hidden" name="1031200717339913" wrap="virtual">
Private Sub Workbook_Open()
TimerAction True
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
TimerAction
End Sub
</textarea>
Edited out error. The attachment reflects these changes.