To add to Anomie's answer, how a class stores the table of which messages it answers to and which bits of code those messages invoke is entirely opaque. So there's an extent to which nobody can answer exactly how Apple's implementation works, and it's almost certain to differ from GNU's implementation.
However, Apple's Objective-C Runtime Reference explains everything that the runtime can do, at the C level. So you can see there what operations are possible for setting and looking things up. It's a relatively simple system under the hood, primarily just a bunch of dictionaries (in the uninflected sense) that map one thing to another, such as from a selector to an IMP function pointer. If there's an entry in the table for a particular class then the relevant thing is called. If not then superclasses are checked, the standard forwardingTargetForSelector: fallback mechanism is considered, and so on.
Beyond that, more specific comments require more specific questions. There are lots of details like that key-value observing is achieved by a method swizzle (so, the runtime adjusts the C pointer that the class will call for the setter to be one that calls the real setter and informs whoever is observing), but they're all just particular uses of the runtime as documented.