Pude hacer lo que quería instalando Karabiner y añadiendo un archivo aquí:
$ nano ~/Library/Application\ Support/Karabiner/private.xml
He añadido lo siguiente:
<?xml version="1.0"?>
<root>
<item>
<name>Custom Shortcuts</name>
<item>
<name>Shift + Up = Page Up</name>
<identifier>custom.pageup</identifier>
<autogen>__KeyToKey__ KeyCode::CURSOR_UP, VK_SHIFT | ModifierFlag::NONE, KeyCode::PAGEUP</autogen>
</item>
<item>
<name>Shift + Down = Page Down</name>
<identifier>custom.pagedown</identifier>
<autogen>__KeyToKey__ KeyCode::CURSOR_DOWN, VK_SHIFT | ModifierFlag::NONE, KeyCode::PAGEDOWN</autogen>
</item>
<item>
<name>Shift + Left = Home</name>
<identifier>custom.home</identifier>
<autogen>__KeyToKey__ KeyCode::CURSOR_LEFT, VK_SHIFT | ModifierFlag::NONE, KeyCode::HOME</autogen>
</item>
<item>
<name>Shift + Right = End</name>
<identifier>custom.end</identifier>
<autogen>__KeyToKey__ KeyCode::CURSOR_RIGHT, VK_SHIFT | ModifierFlag::NONE, KeyCode::END</autogen>
</item>
<item>
<name>Shift + Delete = Forward Delete</name>
<identifier>custom.delete</identifier>
<autogen>__KeyToKey__ KeyCode::DELETE, VK_SHIFT | ModifierFlag::NONE, KeyCode::FORWARD_DELETE</autogen>
</item>
</item>
</root>
A continuación, hice clic en "Recargar XML" en Karabiner y seleccioné las nuevas opciones, que surtieron efecto inmediatamente. Parece que simula las pulsaciones deseadas en cada aplicación.