A seguinte unidade funciona, embora não seja a solução ideal
[Unit]
Description=Startup actions
[Service]
Type=simple
User=USERNAME
Environment=DISPLAY=:0
ExecStart=/usr/local/bin/disable_pgupdw.sh
[Install]
WantedBy=multi-user.target
Na verdade, é necessário adicionar um sleep 10 no início do script, o que não é muito bom
#!/bin/bash
sleep 10
xmodmap -e 'keycode 112 = NoSymbol'
xmodmap -e 'keycode 117 = NoSymbol'
Como apontado por Ignacio, o xmodmap requer acesso ao servidor X. A combinação
Type=simple
User=USERNAME
Environment=DISPLAY=:0
e
sleep 10
no script parece alcançar o requisito.