Multidimensional pivot in postgres without crosstabs
I think you're after something like this:

  SELECT id,
         start_of_week,
         sum(hours) as "Overall",
         sum(hours) filter (where "dow" = 'sunday   ') as "sunday   ",
         sum(hours) filter (where "dow" = 'monday   ') as "monday   ",
         sum(hours) filter (where "dow" = 'tuesday  ') as "tuesday  ",
         sum(hours) filter (where "dow" = 'wednesday') as "wednesday",
         sum(hours) filter (where "dow" = 'thursday ') as "thursday ",
         sum(hours) filter (where "dow" = 'friday   ') as "friday   ",
         sum(hours) filter (where "dow" = 'saturday ') as "saturday "

    FROM newtable

   WHERE id is not null

GROUP BY id,
         start_of_week

ORDER BY start_of_week;


I added an overall sum as well.