Noriさんご返信ありがとうございます。無事解決しました。
apacheのログを見ると、どうもエイリアスがうまくいっていないようで、/var/www/のほうを見に行ってしまうため、RewriteBaseを定義しなおしたところ解決しました。
RewriteEngine On
RewriteBase /~username/php/modx
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA,NC]
原因はmod_userdirとの併殺というか、mod_userdirを使った上でRewriteBaseをちゃんと指定してあげていなかったことだと思います。
これはapache2.2だけの問題ではないかもしれません。
お手数おかけしましたが、無事解決しましたのでご報告させていただきます。