Can 2 tables lock each other if concurrent read/update do not affect same rows? pagelocks off
Usually deadlock happens when:


Query 1 tries to do an update - but before updating it needs to do a select. So first it applies READ lock (S - shared lock). Let's say it managed to lock a couple of pages.
Query 2 tries to do a select and sets a READ lock (S - shared lock) on some of these pages.
Query 1 now tries to do an update - so it tries to change READ lock to a WRITE lock (i.e. S (shared) to an X (exclusive) lock). It  manages to do it on certain pages but can't do it on all of them since some of the pages are locked by Query 2.
Query 2 in turn tries to obtain more pages - but they now have a X lock (WRITE lock).


In the end both queries are waiting for each other so SQL Server decides to kill one query with DEADLOCK exception.

By the way - issue is not Primary Key Index here.