Inserts/updates are extremely slow with Merge Replication in SQL Server 2008
I had a very similar sounding problem.  We replicated a table with millions of rows.  One of the subscribers would take up to 2 minutes to insert 100 new rows.

I solved the issue by adding an index to the rowguid column of the table it was inserting to.  I know this sounds like it should degrade performance but it looked like it was doing a full table scan before inserting, probably to make sure a duplicate row was not inserted.

Once I added this index replication was running smoothly again