Все применения эффектов кэшируются, так как применение эффекта очень ресурсоемкая задача. То есть под конечное изображение выделяется дополнительный буфер, содержащий результирующее изображение с эффектом. Кэш обновляется либо в ручную, либо автоматически в нескольких случаях. При скроллировании, видимо эффект не обновляется. Это можно сделать в OnViewPortPositionChanged в ручную.
var
EffectContainer: IEffectContainer;
begin
if Supports(Button1, IEffectContainer, EffectContainer) then
EffectContainer.NeedUpdateEffects;
Но повторюсь, в этом случае у вас заметно замедлиться скорость прокрутки. Лучше использовать для тени прозрачную png картинку, подложенную в стиль итема.