NEO SPECTRUMAN, Вроде нашел решение, но заточенное под мой случай.
У меня кроме палитры 8bpp (rgb 773) есть исходная палитра 24bpp. Цвет из палитры 24bpp переводим в формат YCbCr, изменяем яркость и переводим обратно в RGB.
Но решение считаю частичным, так что продолжаю поиск изменения яркости внутри палитры 8bpp.
Минусом данного решения является необходимость наличия палитры 24bpp, и более того если необходимо последовательное изменения цвета, то цвет в палитры 24bpp должен оставаться оригинальным (незатронутый конверсией в 8bpp).
Код:
 
   Y=Trunc(  0.299  * rrr + 0.587  * ggg + 0.114 * bbb) /* канал яркости */
   Cb=Trunc(-0.1687 * rrr - 0.3313 * ggg + 0.5   * bbb + 128.0)
   Cr=Trunc( 0.5    * rrr - 0.4187 * ggg - 0.0813* bbb + 128.0)

   if ?bright=1 then Y=Y+36 /* Светлее */
   else Y=Y-36 /* Темнеее */

   rrr=Trunc(Y + 1.402 * (Cr - 128.0))
   if rrr>255 then rrr=255
   else if rrr<0 then rrr=0
   ggg=Trunc(Y - 0.34414 * (Cb - 128.0) - 0.71414 * (Cr - 128.0))
   if ggg>255 then ggg=255
   else if ggg<0 then ggg=0
   bbb=Trunc(Y + 1.772 * (Cb - 128.0))
   if bbb>255 then bbb=255
   else if bbb<0 then bbb=0

   rrr8=format(rrr*(7/255),,0) /* 24bpp в 8bpp */
   ggg8=format(ggg*(7/255),,0) /* format - округление до целого */
   bbb8=format(bbb*(3/255),,0)
так же обращу внимание, что в "идеальном" случае получается только 9 шагов смещения. "Идеальным" случаем это когда составные R и G равны. А вот если внести поправку = 16 в 24bpp в одну из составляющих, получиться 18 шагов (в 8 Bpp).