Philip has it right. If you look at the two functions that allow you to add and retrieve items from the tracker, they are always expected to be of type GameObject.
You can, of course, write your own classes that have a different expected type for the hashtable. It would be inadvisable to try to implement a hashtable tracker that stores any type, which you then cast on retrieval... mostly because as a human you'd end up forgetting details and be forever mis-using return values and troubleshooting the resulting bugs.