I couldn't understand how to extend the built-in media picker, so ended up building a custom datatype for a client, that hooked up to their external DAM system. They could then pick / search for media from the DAM. It didn't look "exactly" like the current media picker, but was very close. I think thats your best option.