Take a look at http://halfelf.org/2011/wordpress-dso-and-permissions/ so see if it helps you out.
Basically you need to do the following changes:
On wp-config.php:
define('FS_CHMOD_DIR', (0755 & ~ umask()));
define('FS_CHMOD_FILE', (0644 & ~ umask()));
To override file permissions.
Then if you got your files with 777 permissions you can change them back easily by doing in console:
find /home/foobar/public_html/wp-content/uploads -type d -perm 777 -print -exec chmod 755 {} \;
find /home/foobar/public_html/wp-content/themes -type d -perm 777 -print -exec chmod 755 {} \;
find /home/foobar/public_html/wp-content/plugins -type d -perm 777 -print -exec chmod 755 {} \;
Change foobar with your user
Same for files:
find /home/foobar/public_html/wp-content/uploads -type f -perm 777 -print -exec chmod 644 {} \;
And the last thing to do is change the owner to nobody:nobody (user:group) on the folders uploads and upgrade. You can do it like this:
chown -R nobody:nobody /home/foobar/public_html/wp-content/uploads/