How do I force WP to set upload directory permissions correctly?

Isn’t it supposed to use the parent directory’s permissions?

No, according to this file permissions n creation are set by apache. You will need to look at your apache config and OS settings to find the reason and fix it.

It it might be that your umask parameter is 003 instead of 002.