This is a nice demonstration of the fact that a clustered index is essentially the same as a "clustered table" but in several places in the article it was clearly implied that if a table has a non-clustered index defined on it is no longer a heap.
Note that this table is currently a heap, it does not have any indexes of any type.
The index is ignored, and the table is treated like a heap, resulting in a table scan.
Disabling the non-clustered index causes the query to treat the table like a heap
This is not true. A table is not considered a heap only--and only--when a clustered index is defined on it. If it has one or more non-clustered indexes but no clustered index it is still considered a heap.
All a non-clustered index (on a heap table) is a copy of one or more columns stored separately (from the table) on the disk. A non-clustered index doesn't in anyway change the structure of the heap itself hence a table remains a heap even when you have one or more non-clustered indexes defined on it. On the other hand, when you define a clustered index on a heap table the data in then physically organized in the way you defined the clustered index (and rewritten to the disk with the index structures built on top of the data pages).
See this MSDN article for the official word.