SQL Server 2008 R2: query RECENT locks, NOT current locks
some (most) X locks are recorded in the log, see How to read and interpret the SQL Server log. You can see what xact acquired them and how long the xact lasted (see the link). You won't find the conflicts, but you can make some guess.