Al alv tendras que pasarle un status, y dentro de ese status defines los botones que quieras, con sus codigos de funciones que son lo que tienes que testear despues para saber que boton se ha pulsado.
Seria una cosas asi mas o menos:
Dentro de la llamada a la funcion en el ejemplo un alv grid le indicas en el parametro "i_callback_pf_status_set " el nombre de la subrutina donde cargaras el status, 'ALV_STATUS'.
Llamada a la función ALV grid
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
...
...
...
i_callback_pf_status_set = 'ALV_STATUS'
...
...
...
.
Define una subrutina denominada ALV_STATUS:
FORM alv_status USING rt_extab TYPE slis_t_extab.
SET TITLEBAR 'TITULO'. -> Esto es apra un titulo en el ALV
SET PF-STATUS 'STATUS'. -> le pasas el nombre del STATUS
ENDFORM. " alv_status
Define un status denominado STATUS o como quieras y le pones los botones que quieras, si no sabes crear status dime y te indico lo básico.
Saludos.