Answers to your questions:
Unfortunately no, you cannot. The CLR garbage collector works with a label, a scan, a compact design, so there is no heap information between runs (except for the size of the heap or the current generation of an instance of a specific type), which allows you to iterate through all the objects in it.
GC - perfmon ( ) CLR.