Select complete next row based on the current row
Trying to guess your requirements here, You want to "remove" rows that are part of div-Purchase pairs.

If by remove you mean don't select them, i.e. filter them out in a where clause, then something like this might work:

with TestCTE as
(
    select ID, [Partner], [Type], Amount, 
        LEAD([Type], 1) OVER (ORDER BY ID) NextType,
        LAG([Type], 1) OVER (ORDER BY ID) PreviousType
    from test
)
select ID, [Partner], [Type], Amount
from TestCTE
where NOT ( [Type] = 'div' AND [NextType] = 'Purchase' )
  and NOT ( [Type] = 'Purchase' AND [PreviousType] = 'div' )


But if by remove, you mean delete, then that's simply:

with TestCTE as
(
    select ID, [Partner], [Type], Amount, 
        LEAD([Type], 1) OVER (ORDER BY ID) NextType,
        LAG([Type], 1) OVER (ORDER BY ID) PreviousType
    from test
)
DELETE
from TestCTE
where ( [Type] = 'div' AND [NextType] = 'Purchase' )
  or ( [Type] = 'Purchase' AND [PreviousType] = 'div' )


That's two examples that both use a select and a delete using a CTE and similar where clauses. If you want to update, you can use the same strategy.