Да, ты можешь
some_array[offset..-1].each_with_index{|item, index| some_func(item, index) }
some_array[offset..-1].each_with_index{|item, index| some_func(item, index+offset) }
some_array[offset..-1].each_with_index{|item, index| index+=offset; some_func(item, index) }
UPD
Также я должен заметить, что если смещение больше, чем размер вашего массива, это произойдет с ошибкой. Потому как:
some_array[1000,-1] => nil
nil.each_with_index => Error 'undefined method `each_with_index' for nil:NilClass'
Что мы можем здесь сделать:
(some_array[offset..-1]||[]).each_with_index{|item, index| some_func(item, index) }
Или для предварительной проверки смещения:
offset = 1000
some_array[offset..-1].each_with_index{|item, index| some_func(item, index) } if offset <= some_array.size
Это немного взломано
UPD 2
Насколько вы обновили свой вопрос, и теперь вам нужно не смещение массива, а смещение индекса, поэтому решение @sawa будет отлично работать для вас