Eu já brinquei com isso, e a melhor maneira de encontrar foi usar um FrameLayout e colocar um HorizontalScrollView (HSV) personalizado na parte superior do menu. Dentro do HSV estão as visualizações do aplicativo, mas há uma visualização transparente como o primeiro filho. Isso significa que, quando o HSV tiver deslocamento de rolagem zero, o menu será exibido (e ainda será clicável surpreendentemente).
Quando o aplicativo é iniciado, rolamos o HSV para o deslocamento da primeira visualização visível do aplicativo e, quando queremos mostrar o menu, rolamos para trás para revelar o menu através da visualização transparente.
O código está aqui e os dois botões inferiores (chamados HorzScrollWithListMenu e HorzScrollWithImageMenu) na atividade Iniciar mostram os melhores menus que eu poderia criar:
Demonstração do menu deslizante do Android
Captura de tela do emulador (rolagem intermediária):

Captura de tela do dispositivo (rolagem completa). Observe que meu ícone não é tão largo quanto o ícone do menu do Facebook; portanto, a visualização do menu e a visualização 'app' não estão alinhadas.
