hmmm... there are a lot of blogs/questions about this subject, if the following explanation shouldn't help.
the time spent per visit is calculated as "total time"/"total visits". knowing that, there are two reasons why the total is not the average:
1) every day has most likely a different amount of users and shows the average of those visits. to get an average, you need to get the total time per day ("visits" * "time per visit"), sum it up for all days and divide it by total visits.
2) but, doing the above one, will double count all visits at midnight. if a visitors starts it visit before midnight and ends after midnight, it will count for both single days, but only once in the total header row. you can see the double counts if you add "visits" as metric and sum up the single rows.
to verify the number in the header row for "time spent" you need to sum up as written in 1), excluded by the double counts as mentioned in 2)
hope that helps 