Maybe adding something like that to your `.vimrc` could be what you want:

    function! DeleteOver()
       let save_cursor = getpos(".")
       normal k
       normal dd
       call setpos(".", save_cursor)
       normal k
    endfunction

    function! DeleteUnder()
       let save_cursor = getpos(".")
       normal j
       normal dd
       call setpos(".", save_cursor)
    endfunction

These functions delete the line under or the line over the current one and go back to the position before the deletion.

For the function `DeleteOver()` we need to go up one line with `normal k` after the deletion because the deletion change the number of the original line which doesn't happend with `DeleteUnder()`

You can also add this to your `.vimrc`

    nnoremap <Leader>d :call DeleteOver()<CR>
    nnoremap <Leader>D :call DeleteUnder()<CR>

To create the mappings calling the functions.