2つのビットマップを異なるパレットで表示したいのですが、
どうしたらよいでしょうか?

パレットをあらかじめ2つCreatePalette()で作っておいて、

SelectPalette(hDC, hPalette1, FALSE);
RealizePalette(hDC);
SetDIBitsToDevice(); /* 1つめのビットマップ */

UnrealizeObject(hPalette1);
SelectPalette(hDC, hPalette2, FALSE);
RealizePalette(hDC);
SetDIBitsToDevice(); /* 1つめのビットマップ */

ではだめでしょうか?