>>553
1. 方法その1
LockWindowUpdateを使用する。
Form1からForm2(ボタンがたくさんあるフォーム)を呼び出す。
procedure TForm1.Button1Click(Sender: TObject)
begin
 Screen.Cursor := crHourGlass;
 LockWindowUpdate(Handle);
 try
  Form2.Show;
 finally
  LockWindowUpdate(0);
  Screen.Cursor := crDefault;
 end;

2. ボタンが同じ大きさで格子状に配列されてもよい場合
こういうコントロールを使用して、たくさんのボタンを1個にしてしまう。
http://www.woll2woll.com/1stclass/tour/buttongroups.html
(英語)

LockWindowUpdateはWin32ヘルプか、MSDNを参照のこと。