В Sender передается объект, вызвавший событие.
Код:
procedure TForm1.ButtonOnClick(Sender: TObject);
begin
(Sender as TButton).Caption := '123';
...
end;
Так можно работать с полями этой кнопки.
Таймер есть стандартный компонент Delphi, в котором задается интервал срабатывания и функция срабатывания.
Самое простое решение - сделать для каждой кнопки свой таймер. При нажатии на каждую кнопку запускаем ее личный таймер на 3 секунды и ждем.
Решение поинтереснее - добавлять кнопки в очередь на срабатывание, а в поле Interval таймера задавать время до ближайшего включения какой-либо кнопки. По событию таймера доставать из очереди один элемент и работать с ним.