Can be easily achieved with a few helper columns, INDEX and MATCH formulas.
First helper, is a 'First Row' column, in column E (next to your Sum column). In cell E4 add =D4+N(E3) and drag this down for all your Client/Service rows
Then on Sheet2, add a 2nd helper column (Client Row) between your Row column and your Client columns. If Row 1 is in cell A4 on Sheet2, then put =IFERROR(MATCH(A4-1,Sheet1!$E$4:$E$6,1)+1,1) in cell B4, and then drag down.
For your Client column, in cell C4 put =INDEX(Sheet1!$A$4:$A$6,B4) and drag down.
Then when you change your values in your service columns the data on Sheet2 will update. I've assumed that if a client has zero services on Sheet1 you don't want them to appear on Sheet2, so for example if you make Client B 0 for service1 and service2 the your Sheet2 list will just show Client A and C, but with errors after the last client C row. Some error handling can be built into the formulas to deal with this if you want.