The relevant code is in core/xpdo/xpdo.class.php:
$this->pdo= new PDO($this->config['dsn'], $this->config['username'], $this->config['password'], $this->config['driverOptions']);
The first argument is constructed like this in core/model/modx/dbapi.class.php:
$dbtype . ':host=' . $host . ';dbname=' . str_replace('`', '', $dbase)
I would say to try this as your sever (if you haven’t already):
unix_socket=/tmp/mysql5.sock
I don’t think it will work, MODx will put "host=" in front of it which will probably kill it.
You would probably have to change the argument constructor line to:
$dbtype . ':unix_socket=' . $host . ';dbname=' . str_replace('`', '', $dbase)
And use your original value for server.
There may be a way around this without hacking the core code, but I doubt it. Someone who knows more about server stuff might have a better idea, but it looks to me like "host=" is hardcoded in all the relevant places.