Here is some of the code from the stackexchange page (the part where it loops through the polygon feature):
for row in arcpy.da.SearchCursor(polyFC, ["SHAPE@"], spatial_reference=SR):
polyBuff = row[0].buffer(buffNum * -1)
coordSplit = row[0].hullRectangle.split(' ')
coordList = arcpy.Array([arcpy.Point(coordSplit[0],coordSplit[1]),arcpy.Point(coordSplit[2],coordSplit[3]),arcpy.Point(coordSplit[4],coordSplit[5]),arcpy.Point(coordSplit[6],coordSplit[7]),arcpy.Point(coordSplit[0],coordSplit[1])])
currentLines = []
for pointNum in range(0,4):
arcpy.Array([coordList.getObject(pointNum),coordList.getObject(pointNum+1)])
hullRecLine = arcpy.Polyline(arcpy.Array([coordList.getObject(pointNum),coordList.getObject(pointNum+1)]))
currentLines.append(hullRecLine)
firstLong = 0
if currentLines[0].length > currentLines[1].length:
firstLong = 1
numPoints = int(math.floor(currentLines[firstLong].length/lineSpaceNum))
for point in range(1,numPoints+1):
shortPoint1 = currentLines[firstLong].positionAlongLine(lineSpaceNum*point)
shortPoint2 = currentLines[firstLong + 2].positionAlongLine(currentLines[firstLong + 2].length - (lineSpaceNum*point))
parallel = arcpy.Polyline(arcpy.Array([shortPoint1.centroid,shortPoint2.centroid]), SR)
parallelBuff = parallel.intersect(polyBuff,2)
parallels.append(parallelBuff)
In lines 6-17, the code is creating a hull rectangle and getting the lines that make up the rectangle. At lines 20-22, it is comparing the lines to see which side is the long side. The code then goes on to draw the lines.
If you were to compare the starting xy coordinates and ending coordinates of the first and second lines, you should be able to determine which is the most northerly of the lines. Then set the index ( firstLong ) to indicate which line to use.