Consider using the SelectorBar
control. It already has logic for selection indicator that could be restyled and repositioned. The SelectorBar is typically meant for navigation, but it could work for this purpose as a collection control instead. Unfortunately, it does not support data virtualization or an ItemsSource property, which could be limiting depending on your use case. I suggest using with a relatively known/small quantity of items.
You can see a working example in the WinUI 3 gallery app: https://apps.microsoft.com/detail/9P3JFPWWDZRC?hl=en-us&gl=US&ocid=pdpshare
Here is a link to the default style for SelectorBar on GitHub: https://github.com/microsoft/microsoft-ui-xaml/blob/main/src/controls/dev/SelectorBar/SelectorBar.xaml
API Reference: https://learn.microsoft.com/en-us/windows/windows-app-sdk/api/winrt/microsoft.ui.xaml.controls.selectorbar
Design docs: https://learn.microsoft.com/en-us/windows/apps/design/controls/selector-bar