because router will choose the directly connected neighbor (with AD 0)
instead iBGP (with AD 200)?
With a directly connected network, a router is not sending the traffic to a neighbor, it is directly placing the traffic on the destination network. If the router itself is directly connected to the destination network, why would you want to send the traffic to a different router? That could lead to routing loops or other problems. The point of routing is to get packets to a router that is directly connected to the destination network so that router can place the packets on the destination network. You seem to want to then send the packets somewhere other than the destination network. That is ill-advised.
You could use something like PBR to send the traffic to a different interface, but this would result in sub-optimal routing in the best case. You would be adding unnecessary hops, and the traffic will probably be dropped or sent back to the directly connected router, at which point it would probably be sent back, creating a routing loop until the TTL expires and the packets are dropped.