I suspect that by the time you implement a tool to do this, you could have completed it through the trail and error method.
When I had to do this same thing (using iTextSharp like you are) I started by attempting to write text to an arbitrary position on the form, say x = 100 and y = 100. When I saw where it ended up on the PDF, I adjusted. After doing this a bit you get a sense of what coordinates the next point should be at.
TIP #1:
Remember that 0, 0 references the bottom left of your document. As these numbers increase your position goes up and to the right in the document.
TIP #2:
Think about how the content on your PDF lines up on the vertical and horizontal axes. Find these values and declare them as constants in your program and reference these constants on your code. This cuts down on the number of points you need to find and makes you program more readable.
For example, on the document I'm building is a form with text with a number of lines that runs horizontally (think common y-axis values) and boxes that line up vertically (think common x-axis values).
So I determined y-axis locations for the lines and declared them like this (in C#):
const float Line1Y = 200f;
const float Line2Y = 150f;
//etc.
I also determined the x-axis locations for the boxes and declared their x-axis values like this:
const float Column1X = 100f;
const float Column2X = 200f;
//etc.
In my code when it came time to position my elements, I referred to the constants like this:
content.SetTextMatrix(Column1X, Line1Y);
content.SetTextMatrix(Column2X, Line1Y);
content.SetTextMatrix(Column1X, Line2Y);