Nie testowałem tego, więc nie wiem, czy zadziała, ale spróbował bym przekopiować bitmapę z kontekstu urządzenia do bufora, do którego masz bezpośredni dostęp. Poeksperymentował bym z funkcją GetDIBits(), albo CreateDIBSection(). Bez wywoływania funkcji GetPixel() powinno być szybciej.