Melt butter in a deep 12-inch skillet over low heat and stir garlic for 30 seconds. Add milk, cooking water, cream, salt and pepper and bring to a gentle simmer.
Lay spaghetti in the pan and press it into the liquid as it softens. Cover partly and simmer over medium-low heat for 10 to 13 minutes, stirring and separating the strands every 2 minutes.
Add reserved water in 2-tablespoon amounts only if the pan becomes dry before the pasta is tender. Uncover for the final 1 to 2 minutes if excess liquid remains.
Remove from heat and stir in Parmesan gradually until the cooking liquid becomes a smooth sauce around the noodles.
Rest for 1 minute, stir once more and serve while the coating is still loose.