Using physics collider is certainly one way of doing it, but generally UI doesn't work like that. UI uses flat colliders, and doesn't do collision checking of any kind. To answer your question, I would suggest simply having custom code run while dragging your widget. Inside get all widgets underneath your panel and manually check rectangle intersection between the rectangle of the widget you're dragging and all the others. You can then offset your widget accordingly.
Although if I was doing it, I wouldn't do intersection checking while dragging -- I'd do it only after you release, and do it for all widgets smoothly -- this way the widget would "push" others out of the way. To do that, on DragDropEnd get the positions of your widgets, and calculate positions that would make them be distanced far enough from each other without overlapping, then SpringPosition each widget to their target position.
All this involves writing custom code for calculating positions/offsetting the widgets. Just remember, each widget is a simple rectangle -- so the math is very simple.