Here's a quick cross-tab example specific to your situation:
SELECT D.PersonID,
MAX(CASE WHEN D.Activity = 'Woke Up' THEN D.ActivityTime END) AS WakeUpTime,
MAX(CASE WHEN D.Activity = 'Had Breakfast' THEN D.ActivityTime END) AS BreakfastTime,
MAX(CASE WHEN D.Activity = 'Got Dressed' THEN D.ActivityTime END) AS DressTime
--,...
FROM #data D
GROUP BY D.PersonID
ORDER BY D.PersonID
SQL DBA,SQL Server MVP(07, 08, 09) A socialist is someone who will give you the shirt off *someone else's* back.