You cannot extend any system library classes (List, Map, PageReference, etc). They are all either abstract or final.
When/if we get custom Parameterized Typing back, it would be fully possible to emulate classes, such as
List2<My_Object__c> (that would be the ideal workaround).
For now, you can write a wrapper class or something, but these are pretty much going to be use-case specific, although you could write some custom interfaces to make a flexible system. However, you'd still have to end up implementing Iterable, Iterator, etc.
Basically, there's too many missing language features in the current platform to make anything short of wrapper classes to handle these unique situations.