>>678回答サンクスです。
長文ごめんなさい。
implementsは、委譲を一括して行えます。(委任というらしい)

type
 IObserver = interface //interfaceは全メソッドが virtual = 0なクラス
  procedure Notify;
 end;
 
 IObservable = interface
  procedure AddObserver(const A: IObserver);
  procedure RemoveObserver(const A: IObserver);
 end;

で、IObservableのメソッドを実装したクラスTObservableImplがあるとします。
TWinControlから派生してなおかつIObservableを実装したい時、

type
 TMyControl = class(TWinControl, IObservable)
  FObservable: IObservable;
  property AsObservable: IObservable read FObservable implements IObservable;
 end;

ってな具合に実装を全て他のオブジェクトに押しつけることができます。
要はvirtual継承無しで、全てがTObjectからの派生というルールを守ったまま、多重継承する仕掛けですが、
実行時にFObservableの示す先を取り替えるなんて真似もできます。

最大のメリットとしては、委譲用メソッドをいちいち書く手間を省けることです。
( 恐らく直接関数ポインタで呼ばれるのでしょうから委譲用メソッドかますより効率いいかも?←これは未調査 )