How to divide clock interrupt down?

The 16MHz clock does not divide evenly to a multiple of a second and the frequency is much too high for the arduino timers to produce a pulse per second. That's the bad news, the good news is that you don't need a timer to do what you want.
Here is a version of loop that uses the Arduino millis function to increment your variables.

void loop () {
  if( millis() - prevMillis >= 1000)
  {      
    seconds = seconds + 1;                // Increment the seconds
    prevMillis += 1000;

    if (seconds>59)                      // If a minute has passed
    {
      seconds = 0;                          // Send seconds back to 0
      minutes = minutes + 1;                // Increment the minutes
      if (minutes > 59)                     // If an hour has passed
      {
        hours = hours + 1;                  // Increment the hours
        minutes = 0;                        // Send the minutes back to 0
        if (hours > 23)
        {                
          hours = 0;                          //  // If a day has passed Set hours back to 0
        }
      }
    }
  }
  display_time ();
  delay(1000);
}