Otago began day two in a shaky situation at 71 for 5 in reply to the home side's first innings total of 204, with Neesham on 27 not out and captain Derek de Boorder on 8no.
The pair fought back through the morning session at Seddon Park, Neesham reaching his milestone shortly before the lunch break.
De Boorder was out in the morning session for 37.
Neesham took his total after lunch through to 124, which included 20 boundaries, before being bowled by Northern's Corey Anderson.
The young left-hander received good support from Neil Wagner, who made a useful 23.
Ian Butler then clubbed his way to quickfire 61no, including 4 sixes, to stretch the visitors' total to 298, a lead of 94, before last man Jacob Duffy was out for 2.
Northern paceman Brent Arnel, who at one stage had the impressive figures of 5 for 22, came in for some late punishment and finished with 5 for 74.