There are several ways to speedup this.
First you could direct access to alpha channel buffers. For example this draw a rectangle from x1,y1 to x2,y2:
var palpha:pbyte;
for row:=y1 to y2 do
begin
palpha := ImageEnView1.IEBitmap.AlphaChannel.Scanline[row];
inc(palpha, x1);
for col:=x1 to x2 do
begin
palpha^ := 255;
inc(palpha);
end;
end;
ImageEnView1.Update();
Alternatively you can handle the alpha channel as a gray scale canvas, using CanvasCurrentAlpha property of TIEBitmap. Example:
ImageEnView1.IEBitmap.AlphaChannel.CanvasCurrentAlpha := 200;
ImageEnView1.IEBitmap.AlphaChannel.Canvas.FillRect(Rect(x1, y1, x2, y2));
ImageEnView1.Update();