SQL Server Replication causing locks on table
That procedure is what replication uses to update the table (you probably figured this out already).  I'd take a look at the execution plan and the waits for the procedure when it is running to see what the waits are showing.

I haven't specifically seen that before, but I can imagine it when the procedure is being run from a very remote distributor with a crappy network link in between.