You could do everything a Timer does using a bunch of gauges and some somewhat complex sampling logic.
Using servlet response time as a concrete example of something you might time, a Timer gives you:
from roughly last 5 min of timing samples...
the longest response time
the shortest response time
the average response time
the median response time
the 99th percentile response time
the 95th percentile response time
the ... percentile response time
plus...
the rate of requests in last 15 min
the rate of requests in last 5 min
the rate of requests in last 1 min
the average rate of requests since the Timer was created
So - yes, you could manually create all of those gauges for each thing you wanted to time (and implement the exponentially weighted sampling logic yourself), and remember to carefully use them all wherever you want to time something for consistency, but it would be painful.