I don't know if something like this is supported directly by OpenGL. I seriously doubt it is.

This means that you will have to implement it on your own. And to do this you need to store position of these boxes in a way so you can manipulate them and that the rendering phase is reading their position every frame so they can be rendered at correct position.

Once you figure out how to store position of these boxes you need to devise a picking routine which will tell you which box is under your mouse cursor.
If these boxes are not rotated then this routine could simply iterate through all of the boxes and check if mouse position is within box boundary like so:

Code:
function IsOverBox(Box: TRect; MousePos: TPoint): Boolean;
begin
  Result := False;
  if MousePos.X >= Box.Left then
  begin
    if MousePos.X <= Box.Right then
    begin
      if MousePos.Y >= Box.Top then
      begin
        if MousePos.Y <= Box.Bottom then
        begin
          Result := True;
        end;
      end;
    end;
  end;
end;
If your rectangles are rotated then it becomes a bit more complicated as you need to do necessary spatial transformation to get the correct mouse position over your rectangle.

If you have overlapping rectangles then I guess you are also using some kind of a Z order mechanism to figure out which one is on top. So in such case I recommend that you loop through all of your rectangles according their Z order starting with topmost.