One trap state to deal with "begin with" condition and hence we cannot make initial state as final state as we normally do in mod machines but what can we do is we can first accept an string of length 100 by having 101 states(in normal mod machine 100 state would do but due to "begin" condtion) , making the last state q100 as final state and on further receiving input either a or b , we feedback to the second state from the beginning i.e. q1 so as to ensure we keep on getting loops of 100 only.Further we connect q0 , q1 and q2 to trap state say q101 to handle the begin condition.
So in total 102 states for NFA should be correct in my opinion.