У меня есть не очень хорошее решение для этой задачи, но может кто-нибудь сказать мне, как использовать стандартную библиотеку или более элегантный подход. Текущее решение основано на том факте, что ссылка на процедуру объекта хранит в памяти два указателя, указатель на код процедуры и указатель на объект.
function IsObject( const AEvent: TNotifyEvent; const AObject: TObject ): Boolean;
begin
Result := PointerArray( Pointer( @AEvent )^ )[1] = Pointer( AObject );
end;