In this case, zero-width lookahead `(?=...)` does what you want:
$ echo foo bar buzz | grep -Po "foo \Kbar(?= buzz)"
bar
It does require some extra parentheses. There is no single-character escape for lookahead the way there is for `\K`.
`\K` is really just a zero-width lookbehind for everything so far, so this is also equivalent to
echo foo bar buzz | grep -Po "(?<=foo )bar(?= buzz)"
which I find easier to follow personally.