SQL Server does not lock the entire table. I see that one identifier row is locked by a write transaction.
The reader must scan the entire table because there are no indexes.

This means that it is locked by X-lock on the inserted row. Basically, the reader waits until another transaction decides whether he actually wants to commit this line or roll back.
In session 51, ID 2 is inserted. Session 54 is blocked. There are no page or table locks (except for locks that are not important here).
The fact that the table is a heap (there is no unique CI, as usual) causes an unexpected lock here. This problem will disappear by creating a unique CI.
source share