If I am not too late....here is the dynamic version :
Declare @sql Nvarchar(MAX)
;With CTE
As
(
Select Distinct LabName From #LabValues
)
Select @sql = STUFF((Select ',MAX(Case When LabName = ' + CHAR(39) + LabName + CHAR(39) + ' Then ResultValue Else '''' End) AS ' + CHAR(39) + LabName + CHAR(39) From CTE For XML Path('')),1,1,'')
Select @sql = 'Select UserId, ' + @sql + ' From #LabValues Group By UserId'
Execute (@sql)