If I understand your question correctly, I run something similar on occasion for stormwater lines. It involves extracting depths at each endpoint and adding them to the table of the lines.
What you can do is create your own Unique ID's based off of the XY coordinates of both sources and then use those to join the tables together. You would end up doing two joins, one for the startFA and one for the endFA.
Add new fields called startFAXY and endFAXY in your lines table. Populate those by concatenating your coordinates of start and end. The startFAXY of FID0 would be "-76.350441, 45.434355". Run this same procedure on endFAXY. Then, continue this same process on your extracted values FA table so that you have a column that concatenates your FA table coords. Use these concatenated XY values as a unique ID to join the two sources together (lines table + FA table) and populate the field. The first join (startFAXY + FA table) would populate the startFA field. The second join (endFAXY + FA table) would populate the endFA field.
Using the example from above, FID0 startFAXY -76.350441, 45.434355 would join to a record in the FA table with a concatenated "ID" of -76.350441, 45.434355.
It is generally not perfect since it deals with coordinates, but I find I am able to capture >98% so any manual matching is not too bad. Add in the use of the Attribute Transfer Tool during cleanup/QA and it really reduces the headache.
Best Answer
You have your four columns: X-start; Y-start; X-end; Y-end. Using the field calculator for each column update using:
This asks for the coordinate at the start of the line (the zero) and the end of the line (the negative one). This will provide you with a decimal latitude and longitude, so ensure the columns are floats.
EDIT: Thanks to the_darkside's comments please note this won't work on multi lines, due to the multiple beginnings and ends.