Uwe Ricken continues a series on heaps in SQL Server:
Heaps are not necessarily the developer’s favourite child, as they are not very performant, especially when it comes to selecting data (most people think so!). Certainly, there is something true about this opinion, but in the end, it is always the workload that decides it. In this article, I describe how a Heap works when data are selected. If you understand the process in SQL Server when reading data from a Heap, you can easily decide if a Heap is the best solution for your workload.
Uwe hits on a couple of the (few) use cases where heap performance can match and sometimes surpass clustered index performance.