I believe what Enzo Nakamura is referring to when he says finding the kth position is O(log n) is the use of a red-black binary search tree with a certain twist. At each node you additionally store the size of that node's subtree. This way you can take advantage of the properties of a binary search tree to find which value is the kth value in O(log n). However, the root node of a binary search tree is only guaranteed to be the median if it is a) an odd number of nodes and b) a perfectly balanced tree, and red-black binary search trees are not necessarily perfectly balanced, so even the approach above does not guarantee this.
There is a sort of famous question called the "running median" where you start off with the median and then have to calculate the new median every time you are given a new element. You can solve this by making a heap whose root is the median, whose left subtree is a min heap and whose right subtree is a max heap. Inserting to this heap is O(log n) time but once the tree is made, median retreival is always O(1) because the structure guarantees the root node is the median in all cases.
I think it should be possible to generalize this problem to find the kth value in constant time, as long as k does not change. In the running median problem, we need to rebalance the left and right subtrees every time one is 2 nodes larger than the other. We could generalize this problem to say we rebalance the left subtree (if it's the kth-smallest) or right subtree (if it's the kth-greatest) every time it's size exceeds k, with insert time and rebalance time still both O(log n). Now we can't use this approach to find any kth value like we can using the RB tree, but for the one specific k value, you are retreiving its value in constant time. This process is also referenced in this paper, which specifically states the ability to retrieve the kth value in constant time.