You can derive from UUnrealEdEngine and override NoteSelectionChange(). Then you can call GetSelectedActors() in that function. GetSelectedActors() returns a USelection. You can loop on this data like this:
for (uint16 i = 0; i < Selection->Num(); i++)
{
AActor* Current = Cast<AActor>(Selection->GetSelectedObject(i));
}