Scam. The contractor is trying to transfer liability onto you.
What makes a contractor accountable for getting the job done is the financial peril he faces if he does not. There's the hypothetical distant risk of being sued, but what really keeps him honest is the immediate risk of not being paid.
That is the entire business model of contracting; it's why they get the big bucks. You may notice the raw cost of materials, tool rental and $9/hour Mexican day laborers are a fraction of what he charges. The difference is accountability, he has to get the job done no matter what, including all complications.
By paying up front, you break this accountability model. Because he's been paid, he has no reason to stick out a tough job; he can just say "sorry" or make up a line of bull about the problem being out of scope, and demand more money to finish or simply bail, and leave you with messy unresolved problems, or an unfinished project and a pile of lumber and supplies. It's almost human nature to do so. It is altruism for him to stay with the job once paid.
Humans kinda suck at altruism. This "demanding the money up front when he perfectly knows the business does not work that way" is a great example of sucking at altruism.
And of course, the tension over this unstable relationship will itself sour the relationship, making an abandoned job even more likely.