Esta função pode fazer o que você quiser. Coloque-o no seu ~ / .vimrc ou em um plugin. Ele assume que todos os seus arquivos .cpp e .h estão em diretórios paralelos como em seu exemplo.
function! OpenOther()
if expand("%:e") == "cpp"
exe "split" fnameescape(expand("%:p:r:s?src?include?").".h")
elseif expand("%:e") == "h"
exe "split" fnameescape(expand("%:p:r:s?include?src?").".cpp")
endif
endfunction
nmap ,o :call OpenOther()<CR>
Quando você tiver o arquivo .cpp ou .h aberto, digitar ,o
abrirá o outro em uma janela dividida.