I'm not aware of a way to prioritize one process over another.
The way I've done it is, as you allude to, by managing locks. You set the transaction isolation level as appropriate.
You can also batch statements by using a cursor, rather than having a single large blocking transaction.