Scrolling elements into view
I don't understand why :nth-child selector is even in play here.  It seems all you are wanting to do is add a class to an li with same index within its parent as what the content's index within it's parent is.

I might suggest something along these lines to achieve that:

// Cache jQuery collections somewhere in scope that `scroll()` inherits.
// This prevents you from having to continually re-query the DOM every time
// there is a scroll event.
var $mainContent = $('.section .main-content');
var $eventLi = $('.events-widget-menu li');

$(document).scroll(function () {
    $eventLi.removeClass('current');
    // find content elements in view
    var $currentElements = $mainContent.filter(function(index) {
        return isScrolledIntoView(this);
    });
    // apply class to LI with corresponding index
    $currentElements.each(function() {
        var index = $mainContent.index(this);
        $eventLi.eq(index).addClass('current');
    });
}


This solution is not hard-coded to X number of elements.