The iText image extends the rectangle. You can make a new image implementation.
You can create an image from a template, and you can create a template using the content byte.
Thus, you can create a template, draw a rectangle on it, create an image, and then set the image to the desired cell. I did something similar with a rectangle pattern a while ago.
: , setBackground setBorder.