The simplest thing would be to create an Application Item and an Application Computation that populates this with the date/time and is set to run "Before Header". You can then use the &item. notation anywhere within your page template.
But, as you have noticed, using the browser's navigation/refresh will not necessarily update the date/time value - this is because the value is retrieved from the browser's cache rather than being rerendered by Apex so will only show the date/time of when the page was first loaded.
<span id="ShowDateTime"> </span>
var d = new Date();
var i = document.getElementById("ShowDateTime");
i.innerHTML = d.toLocaleString();
This will insert the date/time on the page and keep updating it every second (the 1000 in setTimeout refers to milliseconds - 1000 = 1 second).