You can't just - threads process elements without the context of where they are in the stream.
However, if you are ready to take off your gloves ...
int[] position = {-1};
String firstNotHiddenItem = entries.stream()
.peek(x -> position[0]++)
.filter("2"::equals)
.findFirst()
.get();
System.out.println(position[0]);
Using int[]instead of simple intallows you to bypass the "effectively final" requirement; the array reference is constant, only its contents change.
"2"::equals e β e.equals("2"), NPE ( null), , , .
( ) :
AtomicInteger position = new AtomicInteger(-1);
String firstNotHiddenItem = entries.stream()
.peek(x -> position.incrementAndGet())
.filter("2"::equals)
.findFirst()
.get();
position.get();