Maybe addin 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

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

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

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

The functions delete the line under or over the current one and go back to the right position on the line and the mappings calls the functions.