>>314
UpdateLayeredWindowにMemoryDC経由でDIB渡す方法で、
ピクセル単位のアルファ値を設定することができる。
Win2000のころから原理的には可能。(冴子先生とか、これ)
ttp://www.microsoft.com/japan/msdn/windows/windows2000/layerwin.aspx

問題はWinFormsがWin32ウィンドウの単なるラッパーなところ。
WPFやIEみたいに最初からクライアント領域は
完全独自描画にしてればこんなに苦労しなくてすんだだろうに。
SendMessage使えなくなるけどね。

こういうサンプルもある。
ttp://www.codeproject.com/cs/media/perpxalpha_sharp.asp