я изменил параметры
else if (b < e.top - d + marginTop) a.css({top: -marginTop +'px'})
else a.css({top: (e.top - d - b) +'px'})
на
else if (b < e.top - d + marginTop) a.css({top: -marginTop +100 +'px'})
else a.css({top: (e.top - d - b) + 100 +'px'})
Получилось, но не совсем то что мне нужно. Теперь при прокручивании страницы до нужного мне блока как только он касается верха экрана сразу прыгает на +100 пикселей вниз и закрепляется. А мне нужно что бы касался не верха экрана а +100 пикселей от него.