put this in ~/Library/KeyBindings/DefaultKeyBinding.dict:
{
"\UF729" = "moveToBeginningOfLine:";
"\UF72B" = "moveToEndOfLine:";
"$\UF729" = "moveToBeginningOfLineAndModifySelection:"; // shift-home
"$\UF72B" = "moveToEndOfLineAndModifySelection:"; // shift-end
"^\UF729" = "moveToBeginningOfDocument:"; // ctrl-home
"^\UF72B" = "moveToEndOfDocument:"; // ctrl-end
"^$\UF729" = "moveToBeginningOfDocumentAndModifySelection:"; // ctrl-shift-home
"^$\UF72B" = "moveToEndOfDocumentAndModifySelection:"; // ctrl-shift-end
"\UF704" = "moveUp:"; // fn-up arrow
"\UF705" = "moveDown:"; // fn-down arrow
}